Запрос на загрузку файлов Ajax не закончитсяJquery

Программирование на jquery
Ответить
Anonymous
 Запрос на загрузку файлов Ajax не закончится

Сообщение Anonymous »

Я пытаюсь загрузить изображение на сервер, но запрос не закончится. В Devtools запрос показывает, что в ожидании, в то время как в бэкэнде PHP постоянно пишет в постоянно растущий файл, пока мне не придется перезагрузить Apache, чтобы остановить запрос. Тот же код, используемый в других частях моего кода, работает просто хорошо. < /P>
Это код запроса. Событие подключено к полю ввода файла: < /p>

Код: Выделить всё

$("body").on("change", "#product-image", function(e) {
if ($.inArray($(this).val().split('.').pop().toLowerCase(), allowedExt) == -1) {
alert("JPG JPEG PNG only");
$(this).val(null);
} else {
var formData = new FormData();
var file = $(this)[0].files[0];
formData.append("Image", file);
formData.append("ProductID", );
$.ajax({
url: "/rest/private/product/image/upload",
method: "POST",
data: formData,
processData: false,
contentType: false,
cache: false,
success: function(response) {
var resp = JSON.parse(response);
if (resp.Status == 1) {
var url = resp.Data.URL;
var order = resp.Data.Order;
var ID = resp.Data.ID;
self.showPreview("" + url, order, ID);
} else {
self.errorToast(resp.Error.Image);
}
},
error: function(resp) {
self.errorToast("Error");
},
});
}
});
< /code>
Это код, который обрабатывает загрузку: < /p>
$Image = $this->request->getFile("Image");

$maxW = "5000";
$maxH = "5000";
$maxSize = 4;
$validationRule = [
"Image" => [
'label' => 'Your Image',
'rules' => [
'uploaded[Image]',
'is_image[Image]',
'mime_in[Image,image/jpg,image/jpeg,image/gif,image/png,image/webp,image/bmp,image/tiff]',
'max_size[Image,' . $maxSize * 1024 . ']',
'max_dims[Image,' . $maxW . "," . $maxH . ']',
],
'errors' => [
'max_dims' => '{field} is bigger than (' . $maxW . "x" . $maxH . ')',
'max_size' => '{field} is bigger than ' . $maxSize . 'MB',
],
],
];

if (!$this->validateData(["Image" => $Image], $validationRule)) {
$this->resp["Status"] = 0;
$this->resp["Error"] = $this->validator->getErrors();
return;
}

if ($Image->isValid() && !$Image->hasMoved()) {
$imageName = $Image->getRandomName();
$Image->move(ROOTPATH . 'public/uploads/product/', $imageName);
}
< /code>
Валидация работает нормально. Когда код доходит до последней строки, он просто не перестанет писать. Файл, загружаемый в файл продукта, становится все больше и больше. Я в тупике.accept
*/*
accept-encoding
gzip, deflate
accept-language
en-US,en;q=0.9
connection
keep-alive
content-length
2654
content-type
multipart/form-data; boundary=----WebKitFormBoundarytNw7RBAAwBNUVCzh
cookie
debug-bar-theme=dark; debug-bar-position=bottom; web_session=doohnklgajb7g24mm4k036juj7jc0fd8; debug-bar-state=minimized
dnt
1
host
test.local
origin
http://test.local
referer
http://test.local/p/edit/46
user-agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36
x-requested-with
XMLHttpRequest
< /code>
Этот конкретный файл, который я попробовал загрузить, составляет всего 2,3 КБ.------WebKitFormBoundarytNw7RBAAwBNUVCzh
Content-Disposition: form-data; name="Image"; filename="download (1).jpg"
Content-Type: image/jpeg

------WebKitFormBoundarytNw7RBAAwBNUVCzh
Content-Disposition: form-data; name="ProductID"

46
------WebKitFormBoundarytNw7RBAAwBNUVCzh--
Пробое изменить ContentType в запросе на Multipart/Form-Data явно и заканчивается запрос, но файл не был загружен.


Подробнее здесь: https://stackoverflow.com/questions/797 ... ll-not-end
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»