Heim  >  Artikel  >  Web-Frontend  >  JavaScript implementiert das Hochladen und Anzeigen einer Vorschau von Bildern ohne Aktualisierung

JavaScript implementiert das Hochladen und Anzeigen einer Vorschau von Bildern ohne Aktualisierung

巴扎黑
巴扎黑Original
2017-08-14 13:46:381224Durchsuche

In diesem Artikel wird hauptsächlich die Funktion zum Hochladen von Vorschaubildern ohne Aktualisierung mit JavaScript vorgestellt. Interessierte Freunde können sich auf

Wie implementiert man die Funktion zum Hochladen ohne Aktualisierung beziehen? Für den handschriftlichen Upload ohne Aktualisierung sind zwei Dinge erforderlich: FormData und FileReader.

FileReader wird zum Durchsuchen von Bildern verwendet.

FormData wird für Ajax-Anfragen verwendet.

HTML-Code

Erstellen Sie zunächst einen Container für das Formular und das Bild


  <form enctype="multipart/form-data" id="oForm">
    <input type="file" name="file" id="file" onchange="readAsDataURL()" />
    <input type="button" value="提交" onclick="doUpload()" />
  </form>
  <p>
    <img alt="" id="img"/>
  </p>

Javascript-Code

FormData:

Das FormData-Objekt kann zum Zusammenstellen einer Reihe von Schlüssel-/Wertpaaren verwendet werden zum Senden von Anfragen mit XMLHttpRequest. Das Versenden von Formulardaten wird dadurch flexibler und komfortabler, da es unabhängig vom Formular genutzt werden kann. Wenn Sie den Kodierungstyp des Formulars auf „multipart/form-data“ festlegen, ist das über FormData übertragene Datenformat dasselbe wie das Datenformat, das vom Formular über die Methode „submit()“ übertragen wird.

Hier wird das FormData-Objekt verwendet, um alle Eingabedaten im Formular abzurufen und dann mithilfe einer Ajax-Anfrage die Daten an die angegebene URL zu senden, sodass beim Absenden des Formulars kein Sprung erfolgt.


  function doUpload() { 
     var formData = new FormData($( "#oForm" )[0]); 
     console.log(formData); 
     $.ajax({ 
       url: &#39;pp&#39;, 
       type: &#39;POST&#39;, 
       data: formData, 
       async: false, 
       cache: false, 
       contentType: false, 
       processData: false, 
       success: function (returndata) { 
         console.log(returndata); 
       }, 
       error: function (returndata) { 
         console.log(returndata); 
       } 
     }); 
  }

FileReader:

Das FileReader-Objekt ermöglicht das asynchrone Lesen von Webanwendungen Der Inhalt einer Datei (oder eines Rohdatenpuffers), die auf dem Computer des Benutzers gespeichert ist. Verwenden Sie ein Datei- oder Blob-Objekt, um die zu lesende Datei oder die zu lesenden Daten anzugeben.

Hier wird das FileReader-Objekt verwendet, um das Bild aus der Datei abzurufen und in das Daten-URL-Format umzuwandeln, um es im vorab erstellten Container anzuzeigen.


function readAsDataURL(){
  //检验是否为图像文件
    var file = document.getElementById("file").files[0];
    if(!/image\/\w+/.test(file.type)){
      alert("看清楚,这个需要图片!");

      return false;
    }else{
    var reader = new FileReader();
    //将文件以Data URL形式读入页面
    reader.readAsDataURL(file);
    reader.onload=function(e){
      var result=document.getElementById("img");
      //显示文件
      result.src= this.result ;
    }
  }
}

Das obige ist der detaillierte Inhalt vonJavaScript implementiert das Hochladen und Anzeigen einer Vorschau von Bildern ohne Aktualisierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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