Я хочу отправить размер изображения байтов из JavaScript в контроллер в байтах [] с помощью вызова AJAX в контроллере MVC Core - PullRequest
1 голос
/ 08 июня 2019

Я загружаю файл изображения в контроллер .net MVC с помощью JavaScript и вызова AJAX POST. Но проблема в том -

1) Я получаю размер файла в JavaScript, используя это var FileSize = $('#ProfilePicUpload')[0].files[0].size;

Когда я отправляю его на контроллер, он не получает никаких данных в виде байтовых данных. Вместо этого он указывается либо в строке, либо в int, либо в длинном типе данных.

1) Я использовал jquery для получения размера изображения, используя files[0].size. Я успешно получил размер загруженного изображения.

2) Я также установил content-type: 'application-json/UTF-8'. и processData:false и contentType:false. Но это приводит к тому, что строка [] OfficialData равна 0 на стороне контроллера.

3) Я получаю оставшиеся данные формы в строке [] на стороне контроллера и только размер изображения в формате байта []

//OfficialData.js file

    var FileSize = $('#ProfilePicUpload')[0].files[0].size; //get size of image file.

        //ajax call
        $.ajax({
                  type: "POST",
                  url: "/Employee/AddEmployeeOfficialDetail",
                  data: { "OfficialData": Employee_Data, size: FileSize },
                  success: function (data) {
                     if (data.check === -1) {
                     jAlert("Employee Already Exists!", "Alert", function () {});}

        //controller code
        public async Task<IActionResult> AddEmployeeOfficialDetail(string[] OfficialData,byte[] size)
        {
        Employee.fileContents.FileSize = BitConverter.GetBytes(size);
        }    

I get byte[] size = null If I use int then I get size of image File like int size = 34598.

Мое единственное требование - получить точно такой же размер изображения из java-скрипта из вызова ajax в byte [] на стороне контроллера.

...