繁体   English   中英

Dropbox v2.0 API上传文件

[英]Dropbox v2.0 API Uploading File

所以我需要使用C#将文件上传到我的保管箱帐户中

我目前正在使用相对较新的Dropbox API v2.0。

我正在使用winforms c#,并从Dropbox自己获得了以下示例代码: https : //www.dropbox.com/developers/documentation/dotnet#tutorial

我需要一些帮助,我不太了解如何在Winforms中调用Upload。

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        var task = Task.Run((Func<Task>)this.Upload);
        task.Wait();
    }

    async Task Upload()
    {
        DropboxClient dbx = new DropboxClient("FF5tO7fs20AAAAAAAAALcjFNxDeEpWSneNOPl6ya9276gFB7s7pUJKVI2vAxFcSs");
        var file = "159386425737-IPs.txt";
        var mem = new MemoryStream(Encoding.UTF8.GetBytes("TESTING" + IPCount.ToString()));
        try
        {
            var updated = await dbx.Files.UploadAsync(file, WriteMode.Overwrite.Instance, body: mem);
        }
        catch (Exception e)
        {
            MessageBox.Show(e.ToString());
        }
    }

我得到的错误是在这条线上

var updated = await.....

这是它抛出的运行时错误

System.ArgumentsOutOfRangeException: Specified argument was out of range of valid values.
Parameter name: Path

和这个错误

Dropbox.Api.BadInputException : Error in call to API function "files/upload" : HTTP header "Dropbox-Api-Arg": path: "folder//file"" did not match parretn '/.*'

由于该函数被声明为async并返回表示异步方法调用的任务,因此您只需要确保等待Task完成就可以关闭窗体。 尝试这个...

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    var task = Upload("APPKEY", "FILELOCATION","TEXT.TXT","CONTENT TEXT HERE");
    task.Wait();

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM