Search code examples
c#apirestsharpzendesk

"Image cannot be displayed because it contains errors" after uploading png to Zendesk using API


I am trying to upload a PNG file using the Zendesk Attachments API and Restsharp. It seems to upload fine but when I click the content url it says the image cannot be displayed because it contains an error.

I am able to upload a pdf by using the same call after changing the file extensions to pdf and it works fine.

            var request = new RestRequest("uploads.json? filename=file1.png", Method.POST);
            request.AddHeader("Content-Type", "application/binary");
            request.AddHeader($"Authorization", "Basic {config.api}");
            request.AddFile("file1", path, "image/png");
            var response = client.Execute(request);

The api call is successful but when I look at the content URL that is returned from the call I get "Image can't be displayed because it contains errors".


Solution

  • I figured this out finally. Here is the solution: https://stackoverflow.com/a/45382624

    I removed these two lines:

    request.AddHeader("Content-Type", "application/binary");
    request.AddFile("file1.png", path, "application/binary");
    

    And added this line:

    request.AddParameter("application/binary", File.ReadAllBytes(pathToFile), ParameterType.RequestBody);
    

    Now it works with all file types.