Я конвертирую пользовательский файл ввода в формат Base64 и публикую сообщение с помощью API загрузки zendesk, он поддерживает только текстовый файл для получения читаемого файла, но не может поддерживать изображение и файл PDF
Код:
C #:
[WebMethod] общедоступная статическая строка UploadFileAttachment (имя файла строки, строковые данные файла) {try {ServicePointManager.Expect100Continue = true;ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var request = (HttpWebRequest)WebRequest.Create(zendeskURL + "/api/v2/uploads.json?filename=" + filename);
var postData = "filedata" + filedata;
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.Method = "POST";
request.Headers["cache-control"] = "no-cache";
request.Headers["Accept-Encoding"] = "gzip, deflate";
request.Headers["Cache-Control"] = "no-cache";
request.Headers["Content-Type"]= "application/binary";
request.Accept = "application/json, application/xml, text/json, text/x-json, text/javascript, text/xml";
request.Timeout = 100000000;
request.Headers.Add("Authorization", "Basic " + zendeskBasicAuthorizationKey);
using (var stream = request.GetRequestStream())
{
stream.Write(byteArray, 0, byteArray.Length);
}
var response = (HttpWebResponse)request.GetResponse();
string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
return responseString;
}
catch (Exception ex)
{
Console.Write(ex);
return "";
}
}
javascript: $ (document) .ready (function () {try {
var fileName = "";
var fileData = "";
$('#myFile').change(function (e) {
fileName = e.target.files[0].name;
var uploadedFile = e.target.files[0];
var reader = new FileReader();
reader.onload = (function (theFile) {
return function (e) {
var binaryData = e.target.result;
fileData = window.btoa(binaryData);
GetFileData(fileName, fileData);
};
})(uploadedFile);
reader.readAsBinaryString(uploadedFile);
});
}
catch (ex) {
console.log("" + ex);
return "";
}
});