В каком формате можно получить данные, введенные пользователем в файл, с помощью API загрузки zendesk - PullRequest
0 голосов
/ 19 октября 2019

Я конвертирую пользовательский файл ввода в формат 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 "";
}

});

...