Я загружаю файл изображения в контроллер .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 [] на стороне контроллера.