Heim >Backend-Entwicklung >PHP-Tutorial >So erhalten Sie die Binärdaten des von formData in PHP hochgeladenen Bildes

So erhalten Sie die Binärdaten des von formData in PHP hochgeladenen Bildes

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-09-14 09:41:232370Durchsuche

<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?

Antwortinhalt:

<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.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn