Die Ajax -Datei -Upload -Anfrage endet nichtPhp

PHP-Programmierer chatten hier
Anonymous
 Die Ajax -Datei -Upload -Anfrage endet nicht

Post by Anonymous »

Ich versuche, ein Bild auf den Server hochzuladen, aber die Anforderung endet nicht. In Devtools zeigt die Anfrage als anhängig, während im Backend im Backend kontinuierlich in eine immer wachsende Datei geschrieben wird, bis ich Apache neu starten muss, um die Anfrage zu stoppen. Der genau gleiche Code, der in anderen Teilen meines Codes verwendet wird, funktioniert einwandfrei. < /P>
Dies ist der Anforderungscode. Das Ereignis ist an ein Dateieingangsfeld angehängt: < /p>

Code: Select all

$("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>
Dies ist der Code, der das Upload verarbeitet: < /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>
Die Validierung funktioniert einwandfrei. Wenn der Code in die letzte Zeile gelangt, wird er einfach nicht aufhören zu schreiben. Die Datei, die in die Produktdatei hochgeladen wird, wird immer größer. Ich bin verblüfft.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>
Diese bestimmte Datei, die ich ausprobiert habe, ist nur 2,3 KB.------WebKitFormBoundarytNw7RBAAwBNUVCzh
Content-Disposition: form-data; name="Image"; filename="download (1).jpg"
Content-Type: image/jpeg

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

46
------WebKitFormBoundarytNw7RBAAwBNUVCzh--
Versucht, contentType in der Anforderung zum MultiPart/Form-Data explizit zu ändern, und die Anforderung wurde jedoch nicht hochgeladen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post