Beispiel für asynchronen Dateiupload in HTML

Beispiel für asynchronen Dateiupload in HTML

Code kopieren
Der Code lautet wie folgt:

<form action="/hehe" method="post">
<Eingabetyp="Text" Wert="hehe"/>
<Eingabetyp="Senden" Wert="Hochladen" ID="Hochladen"/>
</form>


Code kopieren
Der Code lautet wie folgt:

Dies ist die gebräuchlichste und einfachste Methode zum Absenden von Formularen in HTML, aber bei dieser Methode müssen die Seiten gewechselt werden. Manchmal möchten wir vielleicht auf derselben Seite mit dem Server interagieren und nach dem Absenden des Formulars nicht auf eine andere Seite wechseln. Was sollen wir tun? Hier sind mehrere Möglichkeiten zum Absenden von Formularen.
Lassen Sie mich zunächst eine Lösung vorstellen, die das Land durch einen Umweg rettet. Der obige Codeausschnitt muss nicht geändert werden. Fügen Sie einfach den folgenden Code hinzu


Code kopieren
Der Code lautet wie folgt:

<iframe id="uploadFrame" name="uploadFrame"></iframe>

Und fügen Sie das Zielattribut in der Form target=uploadFrame hinzu. Das Zielattribut muss mit dem Wert der ID im Iframe übereinstimmen (oder mit dem Wert des Namensattributs, das werden Sie nach dem Ausprobieren wissen).

Um es kurz zu erklären: Unser Formular wird nach dem Absenden aktualisiert, aber warum gibt es keinen Seitensprung? Das liegt am Iframe. Tatsächlich haben wir im Iframe aktualisiert, und der Iframe ist leer, was dasselbe ist wie nicht aktualisiert. Es gibt uns ein asynchrones Gefühl. Dies ist keine orthodoxe Methode, sondern ein Umweg, um das Land zu retten. Natürlich ist diese Methode in vielen Fällen nicht anwendbar. Beispielsweise hoffen wir, nach dem Absenden des Formulars etwas vom Server abzurufen. Diese Methode ist offensichtlich nicht praktikabel. Hier benötigen wir auch ein wirklich asynchrones Übermittlungsformular.

(II) Asynchrone Formularübermittlung mit jQuery

Hier stellen wir ein jQuery-Formular-Übermittlungs-Plugin ajaxupload vor, das auch relativ einfach zu verwenden ist.

Code kopieren
Der Code lautet wie folgt:

<Text>
<form action="/hehe" method="post">
<Eingabetyp="Text" Wert="hehe"/>
<input Typ="Schaltfläche" Wert="Hochladen" ID="Hochladen"/>
<!--<input type="button" value="senden" onclick="senden()"/>-->
</form>
<Skript>
(Funktion(){
neuer AjaxUpload("#upload", {
Aktion: '/hehe',
Typ: „Beitrag“,
Daten: {},
Name: 'Textfeld',
onSubmit: Funktion(Datei, ext) {
alert("Hochladen erfolgreich");
},
onComplete: Funktion(Datei, Antwort) {
}
});
})();
</Skript>
</body>

Der Hauptcode wird hier veröffentlicht. Nachdem das Rendern der Seite abgeschlossen ist, verwenden wir eine selbstausführende Funktion, um der Schaltfläche mit der ID „Upload“ ein asynchrones Upload-Ereignis hinzuzufügen. Die ID in new AjaxUpload (id, object) entspricht der ID des gebundenen Objekts. Was den zweiten Parameter betrifft, sind Daten die zusätzlichen Daten, Name kann beliebig sein, die Funktion onSubmit ist die Rückruffunktion vor dem Hochladen der Datei, die erste Parameterdatei ist der Dateiname, ext ist das Dateisuffix und die Funktion onComplete kann die vom Server zurückgegebenen Daten verarbeiten. Oben sind zwei einfache Implementierungen von Datei-Upload-Clients.

<<:  Geplante vollständige MySQL-Datenbanksicherung

>>:  Detaillierte Erklärung zum Hinzufügen eines Klickereignisses im Echarts-Tooltip in Vue

Artikel empfehlen

Zusammenfassung der englischen Namen chinesischer Schriftarten

Wenn Sie in CSS die Eigenschaft „font-family“ ver...

Natives JS zur Implementierung des Spiels 2048

2048 Minispiel, zu Ihrer Information, der spezifi...

So implementieren Sie Zeilenumbrüche im Texteingabebereich von Textarea

Wenn Sie den Text im Textarea-Eingabebereich umbre...

Kleines Paging-Design

Lassen Sie unsere Benutzer wählen, ob sie vorwärts...

So rufen Sie das Kennwort für MySQL 8.0.22 auf dem Mac ab

Neueste Version von MySQL 8.0.22 zur Kennwortwied...

MySQL 5.7.17 Winx64 Installations- und Konfigurations-Tutorial

Heute habe ich die MySQL-Datenbank erneut auf mei...

Prinzip und Implementierung der parallelen Replikation von MySQL5.7

Jeder, der ein wenig über Datenoperationen und -w...

Detaillierter Informationsaustausch über das MySQL-Protokollsystem

Jeder, der schon einmal an einem großen System ge...

Detaillierte Analyse des binlog_format-Modus und der Konfiguration in MySQL

Es gibt drei Hauptmethoden der MySQL-Replikation:...

Ein Beispiel für die Umgestaltung eines Puzzlespiels mit vue3

Vorwort Es dauerte zwei Tage, um ein Puzzlespiel ...

So erstellen und implementieren Sie ein Node-Projekt mit Docker

Inhaltsverzeichnis Was ist Docker Clientseitiger ...