2015-09-15 93 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);