<code> <input id="file" type="file" accept="image/png,image/gif,image/jpeg" name="file"> ---------------------------------------------------------------- var fileInput = document.getElementById("file"); var file = fileInput.files[0]; var formData = new FormData(); formData.append("file", file); $.ajax({ url: "./upload_photobank.php", type: "POST", data: formData, processData: false, // 告诉jQuery不要去处理发送的数据 contentType: false, // 告诉jQuery不要去设置Content-Type请求头 complete : function(jqXHR, textStatus) { if(jqXHR.status != 200){ console.log( 456 ) }else{ var jsonData = eval('(' + jqXHR.responseText + ')'); // var jsonData = jqXHR.responseText; console.log(jqXHR.responseText); } } });</code>
Wie schreibe ich PHP, um die Binärdaten hochgeladener Bilder zu erhalten?
Gibt es Fehler im js-Teil?
<code> <input id="file" type="file" accept="image/png,image/gif,image/jpeg" name="file"> ---------------------------------------------------------------- var fileInput = document.getElementById("file"); var file = fileInput.files[0]; var formData = new FormData(); formData.append("file", file); $.ajax({ url: "./upload_photobank.php", type: "POST", data: formData, processData: false, // 告诉jQuery不要去处理发送的数据 contentType: false, // 告诉jQuery不要去设置Content-Type请求头 complete : function(jqXHR, textStatus) { if(jqXHR.status != 200){ console.log( 456 ) }else{ var jsonData = eval('(' + jqXHR.responseText + ')'); // var jsonData = jqXHR.responseText; console.log(jqXHR.responseText); } } });</code>
Wie schreibe ich PHP, um die Binärdaten hochgeladener Bilder zu erhalten?
Gibt es Fehler im js-Teil?
Stellen Sie zunächst sicher, dass die Attribute des Formulars enctype="multipart/form-data"
haben müssen und die instanziierten FormData nicht leer sein dürfen! Wenn es leer ist, kann der Formularwert nicht abgerufen werden
Verwenden Sie $_FILES anstelle von $_POST
Der Upload-Code muss in das „Change“-Ereignis der Eingabe geschrieben werden ... und der Ajax-Rückruf ist etwas seltsam. Sobald er kompiliert ist, beurteilen Sie den Status nicht mehr. .
Sie können sich auf den von mir geschriebenen Front-End-Bild-Direktübertragungs-OSS-Test beziehen
FormData
ist das Formular. Die gesamte Datenverarbeitung erfolgt auf die gleiche Weise wie das Formular, daher wird das Hochladen von Dateien weiterhin über $_FILES
verarbeitet.