So laden Sie Asynchron -Dateien mithilfe von HTML5 und AJAX hoch
Kernpunkte
- asynchronen Dateien mithilfe von HTML5 und AJAX können im Hintergrund erfolgen, sodass Benutzer während des Hochladens andere Aufgaben auf der Seite ausführen können. Bei diesem Prozess werden HTML -Formulare zum Hochladen von Dateien auf PHP -Seiten erstellt, und JavaScript stellt sicher, dass nur JPG -Bilder mit weniger als 300.000 Bytes hochgeladen werden.
- Die JavaScript -Upload -Funktion erfordert ein XMLHTTPREQUEST2 -Objekt (in Firefox und Chrome verfügbar). Die .open () -Methode von XMLHTTPREQUEST wird so eingestellt, dass die Daten auf der PHP -Seite veröffentlichen, den HTTP -Header auf den Namen der Datei festgelegt und das Dateiobjekt an die .send () -Methode übergeben werden.
- PHP -Datei überprüft den HTTP -Header X_FileName, um zwischen AJAX -Anforderungen und Standardformularpost zu unterscheiden. Wenn der Dateiname festgelegt ist, ruft PHP die veröffentlichten Daten ab und gibt sie in einer neuen Datei im Ordner "Uploads" aus. Standard-HTML-Multipart/Form-Daten-Post wird unter Verwendung der üblichen Funktion des PHP $ _file behandelt.
In früheren Artikeln haben wir gelernt, wie man HTML5 verwendet, um Dateien zu ziehen, und wie Sie Dateien mithilfe von HTML5 und JavaScript geöffnet haben. Jetzt haben wir einen gültigen Satz von Dateien, mit denen jede Datei auf den Server hochgeladen werden kann. Dieser Vorgang erfolgt im Hintergrund asynchron, sodass Benutzer im Laufe des Prozesses andere Aufgaben auf der Seite ausführen können.
html
Lassen Sie uns unser HTML -Formular erneut überprüfen:
<fieldset><legend>HTML文件上传</legend><div> <label for="fileselect">要上传的文件:</label> <div>或在此处拖放文件</div></div><div>上传文件</div></fieldset>
Wir laden die Datei auf die PHP -Seite hochladen.php hoch. Wenn der Benutzer auf "Datei hochladen" klickt, verarbeitet die Seite AJAX -Upload -Anforderungen und Standardformular -Posts. Unser JavaScript stellt sicher, dass nur JPG -Bilder mit weniger als 300.000 Bytes hochgeladen werden (der in max_file_size angegebene Wert).
JavaScript
Zunächst müssen wir der Funktion "DateiSelectHandhandler () eine Zeile hinzufügen, die beim Auswählen oder Ziehen und Ablegen einer oder mehrere Dateien aufgerufen wird. In unserer Dateischleife werden wir eine andere Funktion aufrufen - UploadFile ():
// 文件选择 function FileSelectHandler(e) { // 取消事件和悬停样式 FileDragHover(e); // 获取FileList对象 var files = e.target.files || e.dataTransfer.files; // 处理所有File对象 for (var i = 0, f; f = files[i]; i++) { ParseFile(f); UploadFile(f); } }
Datei -Upload erfordert ein XMLHTTPrequest2 -Objekt, das derzeit in Firefox und Chrome verfügbar ist. Bevor wir den AJAX -Aufruf tätigen, stellen wir sicher, dass die .Upload () -Methode verfügbar ist und wir haben eine JPG mit einer Dateigröße, die kleiner als der Formular MAX_FILE_SIZE ist:
// 上传JPEG文件 function UploadFile(file) { var xhr = new XMLHttpRequest(); if (xhr.upload && file.type == "image/jpeg" && file.size < $id("MAX_FILE_SIZE").value) { // 开始上传 xhr.open("POST", $id("upload").action, true); xhr.setRequestHeader("X_FILENAME", file.name); xhr.send(file); } }
Die .open () -Methode von xmlHttprequest wird so eingestellt, dass die Daten in Upload.php (die Aktionseigenschaft unseres Upload -Formulars) veröffentlichen. Zusätzlich setzen wir den HTTP -Header auf den Namen der Datei und übergeben das Dateiobjekt an die Methode .send ().
php
Unsere PHP -Datei upload.php überprüft nun den HTTP -Header x_filename, um zwischen AJAX -Anforderungen und Standardformularposten zu unterscheiden:
<?php $fn = (isset($_SERVER['HTTP_X_FILENAME']) ? $_SERVER['HTTP_X_FILENAME'] : false); ?>
Wenn der Dateiname festgelegt ist, kann PHP veröffentlichte Daten abrufen und in einer neuen Datei im Ordner "Uploads" ausgeben. Überraschenderweise kann dies mit einer einzigen Codezeile erreicht werden:
if ($fn) { // AJAX调用 file_put_contents( 'uploads/' . $fn, file_get_contents('php://input') ); echo "$fn 上传成功"; exit(); }
Der Standard-HTML-Multipart/Form-Daten-Beitrag kann mit der üblichen Funktion von PHP $ _file behandelt werden:
<fieldset><legend>HTML文件上传</legend><div> <label for="fileselect">要上传的文件:</label> <div>或在此处拖放文件</div></div><div>上传文件</div></fieldset>
Sie können die Demo -Seite anzeigen, beachten Sie jedoch, dass sie auf Servern ohne PHP -Unterstützung gehostet wird und Uploads nicht stattfinden. Laden Sie also die Datei herunter, um den Code zu überprüfen und auf Ihrem eigenen PHP -Server zu installieren.
Der obige Code funktioniert, aber der Benutzer weiß nicht, ob das Upload des Datei -Uploads gestartet, abgeschlossen oder fehlgeschlagen ist. Sie müssen die letzte Ausgabe dieser Serie lesen: So erstellen Sie eine Datei -Upload -Fortschrittsleiste in HTML5 und JavaScript …
FAQ (FAQ) Über HTML5 AJAX -Datei Upload
(Der FAQ-Teil wird hier weggelassen, weil dieser Teil nichts mit pseudoorientierten Zielen zu tun hat und länger ist. Es ist in Ordnung, FAQs zu behalten, aber die Sprache muss neu organisiert werden, um es mit dem Gesamtstil des Gesamtstils zu vereinfachen Artikel.)
Das obige ist der detaillierte Inhalt vonSo laden Sie Asynchron -Dateien mithilfe von HTML5 und AJAX hoch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

JavaScript ist der Eckpfeiler der modernen Webentwicklung. Zu den Hauptfunktionen gehören eine ereignisorientierte Programmierung, die Erzeugung der dynamischen Inhalte und die asynchrone Programmierung. 1) Ereignisgesteuerte Programmierung ermöglicht es Webseiten, sich dynamisch entsprechend den Benutzeroperationen zu ändern. 2) Die dynamische Inhaltsgenerierung ermöglicht die Anpassung der Seiteninhalte gemäß den Bedingungen. 3) Asynchrone Programmierung stellt sicher, dass die Benutzeroberfläche nicht blockiert ist. JavaScript wird häufig in der Webinteraktion, der einseitigen Anwendung und der serverseitigen Entwicklung verwendet, wodurch die Flexibilität der Benutzererfahrung und die plattformübergreifende Entwicklung erheblich verbessert wird.

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

Diskussion über die Realisierung von Parallaxe -Scrolling- und Elementanimationseffekten in diesem Artikel wird untersuchen, wie die offizielle Website der Shiseeido -Website (https://www.shiseeido.co.jp/sb/wonderland/) ähnlich ist ...

Zu den neuesten Trends im JavaScript gehören der Aufstieg von Typenkripten, die Popularität moderner Frameworks und Bibliotheken und die Anwendung der WebAssembly. Zukunftsaussichten umfassen leistungsfähigere Typsysteme, die Entwicklung des serverseitigen JavaScript, die Erweiterung der künstlichen Intelligenz und des maschinellen Lernens sowie das Potenzial von IoT und Edge Computing.

JavaScript zu lernen ist nicht schwierig, aber es ist schwierig. 1) Verstehen Sie grundlegende Konzepte wie Variablen, Datentypen, Funktionen usw. 2) Beherrschen Sie die asynchrone Programmierung und implementieren Sie sie durch Ereignisschleifen. 3) Verwenden Sie DOM -Operationen und versprechen Sie, asynchrone Anfragen zu bearbeiten. 4) Vermeiden Sie häufige Fehler und verwenden Sie Debugging -Techniken. 5) Die Leistung optimieren und Best Practices befolgen.

Wie fusioniere ich Array -Elemente mit derselben ID in ein Objekt in JavaScript? Bei der Verarbeitung von Daten begegnen wir häufig die Notwendigkeit, dieselbe ID zu haben ...

Erforschen Sie die Implementierung der Funktion des Bedien- und Drop-Einstellungsfunktion der Panel ähnlich wie VSCODE im Front-End. In der Front-End-Entwicklung wird VSCODE ähnlich wie VSCODE implementiert ...
