File Upload in C# using IceViewer HTML5 API

Assuming that developers will use several API calls, it is recommended to create a static HttpClient class which can be shared over different functions:

private static readonly HttpClient client = new HttpClient();

private static string IceViewer_url = "https://192.168.0.55 "; /*Example URL*/

private static string UploadAPI_url = IceViewer_url + "/api/dm/upload ";

Write the web request itself:

//Uploading a document to IceViewer

private async Task<string> Upload(int ContentEngine, string FilePath)

{

MultipartFormDataContent form = new MultipartFormDataContent();

//Parameters and values

form.Add(new StringContent(ContentEngine.ToString()), "ce");

//Reading File for parameter

byte[] fileContent = File.ReadAllBytes(FilePath);

form.Add(new ByteArrayContent(fileContent, 0, fileContent.Length), "File",

Path.GetFileName(FilePath));

//Sending the request

var requestResponse = await client.PostAsync(UploadAPI_url, form);

//Reading the response

var responseString = await requestResponse.Content.ReadAsStringAsync();

return responseString;

}

The usage of the function and handling the response:

//1 means the file will be uploaded using the FileEngine

string uploadResponse = await Upload(1, @"c:\temp\MyTestDocument.tif");

if (uploadResponse == "600")

{

return 0; //success

}

else

{

return 1; //upload error

}

For detailed API documentation and available parameters, please refer to the UploadFile API documentation.