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.