cancel
Showing results for 
Search instead for 
Did you mean: 
Announcements
Known issues updated. Learn more

Cannot upload Image file with Dropbox API in C# - uploading corrupt image instead

Level 3

Hello.

I am trying to upload an image file into my dropbox account with the dropbox api. The image is being uploaded using this code, but it's a corrupt image.

Here is my code:

 

        public async Task UploadToDropbox()
        {
            using (var dbx = new DropboxClient(dbToken))
            {
                string srcFilePath = @"~\useruploads\";
                string srcFileName = "image1.png";
                string srcFile = srcFilePath + srcFileName;
                string targetFolder = "/uploads";
                string targetFileName = "userupload_" + DateTime.Now.ToString("yymmssfff") + ".png";
                                
                
                //byte[] readContent = Encoding.UTF8.GetBytes(srcFile); //uploading corrupt file
                //byte[] readContent = UTF8Encoding.UTF8.GetBytes(srcFile); //uploading corrupt file
                //var readContent = System.IO.File.ReadAllBytes(srcFile); //uploading nothing
                //byte[] readContent = System.IO.File.ReadAllBytes(srcFile); //uploading nothing

using (var mem = new MemoryStream(readContent)) { var updated = await dbx.Files.UploadAsync( targetFolder + "/" + targetFileName, WriteMode.Overwrite.Instance, body: mem); } } }

Thank you for any help.

1 Accepted solution

Accepted Solutions
Highlighted

Re: Cannot upload Image file with Dropbox API in C# - uploading corrupt image instead

Dropboxer

If you want to upload a local file, you can just do something like this:

using (var file = new FileStream(srcFile, FileMode.Open))
{
    var updated = await dbx.Files.UploadAsync(
        targetFolder + "/" + targetFileName,
        WriteMode.Overwrite.Instance,
        body: file);
}

You'll probably want to add some checking/exception handling to make sure the local file actually exists at that path though.

Reply
Loading...
2 Replies
Highlighted

Re: Cannot upload Image file with Dropbox API in C# - uploading corrupt image instead

Dropboxer

If you want to upload a local file, you can just do something like this:

using (var file = new FileStream(srcFile, FileMode.Open))
{
    var updated = await dbx.Files.UploadAsync(
        targetFolder + "/" + targetFileName,
        WriteMode.Overwrite.Instance,
        body: file);
}

You'll probably want to add some checking/exception handling to make sure the local file actually exists at that path though.

Reply
Loading...

Re: Cannot upload Image file with Dropbox API in C# - uploading corrupt image instead

Level 3

Unfortunately, with that change, the program isn't going into the using bracket. I tried it out with a try/finally and it seems to just go back to the main method after the "var file = new FileStream(srcFile, FileMode.Open)" line. Any idea why that's happening?

Edit: This was happening because the route was incorrect - your reply worked, thank you!

Reply
Loading...
API Support

Have a question? Our Dropbox Community is here to help you find an answer!
You won’t have to wait too long for a reply, but why not learn more about the Community while you’re here.

Not the right discussion for you? Find out what else our Community has to say about API Support.

Or, search our Help Center for even more.