2015-09-15 116 views
1

我使用HigLabo.Net.Dropbox上傳文件到Dropbox。我創建了一個名爲synch的應用程序,並且正在嘗試上傳文件。以下是我的代碼Dropbox API無法上傳文件上傳時出現問題

byte[] bytes = System.IO.File.ReadAllBytes(args[1]); 
UploadFile(bytes,"sundas.jpg","/Apps/synch/"); 


public static void UploadFile(byte[] content, string filename, string target) 
    { 
     string App_key = "xxxxxxxxxxxxxxx"; 
     string App_secret = "yyyyyyyyyyyyyy"; 
     HigLabo.Net.OAuthClient ocl = null; 
     HigLabo.Net.AuthorizeInfo ai = null;      
     ocl = HigLabo.Net.Dropbox.DropboxClient.CreateOAuthClient(App_key, App_secret);       
     ai = ocl.GetAuthorizeInfo();    
     string RequestToken= ai.RequestToken; 
     string RequestTokenSecret= ai.RequestTokenSecret; 
     string redirect_url = ai.AuthorizeUrl; 
     AccessTokenInfo t = ocl.GetAccessToken(RequestToken, RequestTokenSecret); 
     string Token= t.Token; 
     string TokenSecret= t.TokenSecret; 
     DropboxClient cl = new DropboxClient(App_key, App_secret, Token, TokenSecret); 
     HigLabo.Net.Dropbox.UploadFileCommand ul = new HigLabo.Net.Dropbox.UploadFileCommand(); 
     ul.Root = RootFolder.Sandbox; 

     Console.WriteLine(ul.Root); 
     ul.FolderPath = target; 
     ul.FileName = filename; 
     ul.LoadFileData(content); 
     Metadata md = cl.UploadFile(ul); 
     Console.WriteLine("END"); 
    } 

代碼執行得很好,但文件沒有在Dropbox中上傳。

我錯過了什麼嗎?上傳路徑是否正確?如何查看Dropbox中的文件是否已上傳?

在創建應用程序時是否存在缺少的設置?我只是看着主頁,我期待在根文件夾中的文件。我對麼?

還是我需要看看其他位置?

+0

您是否收到任何錯誤,從API請求中返回數據? –

+0

感謝您的留言。打印時出現{「錯誤」:「驗證失敗」} ....不確定哪個驗證失敗。我正在使用下拉框瀏覽器中的密鑰。我需要提供更多認證嗎? –

+1

我正在關注此鏈接http://codingstill.com/2013/11/use-dropbox-with-your-asp-net-application/。我不確定我需要/我需要授權的位置。任何輸入請 –

回答

1

謝謝@smarx和 @Greg。

以下是完成任務的代碼。再次感謝您的支持,我希望這對某些人會有幫助。

string filePath="C:\\Tim\\sundar.jpg"; 
RestClient client = new RestClient("https://api-content.dropbox.com/1/"); 
IRestRequest request = new RestRequest("files_put/auto/{path}", Method.PUT); 
FileInfo fileInfo = new FileInfo(filePath); 
long fileLength = fileInfo.Length; 
request.AddHeader("Authorization", "Bearer FTXXXXXXXXXXXXXXXXXXXisqFXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); 
request.AddHeader("Content-Length", fileLength.ToString()); 
request.AddUrlSegment("path", string.Format("Public/{0}", fileInfo.Name)); 
byte[] data = File.ReadAllBytes(filePath); 
var body = new Parameter 
{ 
    Name = "file", 
    Value = data, 
    Type = ParameterType.RequestBody, 
}; 
request.Parameters.Add(body); 
IRestResponse response = client.Execute(request);