Heim Web-Frontend H5-Tutorial Detaillierte Einführung in die HTML5-Datei-API zur Implementierung der Haltepunktwiederaufnahme

Detaillierte Einführung in die HTML5-Datei-API zur Implementierung der Haltepunktwiederaufnahme

Mar 27, 2017 pm 03:11 PM

Derzeit erfordern die meisten Websites auf dem Markt die Installation von Browser-Plug-ins für den Haltepunkt-Upload. Dieser Artikel richtet sich an fortgeschrittene Browserumgebungen über HTML5 Datei API Haltepunkt-Upload zur Erläuterung implementieren

HTML5s hat das Attribut „multiple“ hinzugefügt, das mehrere Werte akzeptieren kann

Feld

Mit diesem hinzugefügten Attribut können Benutzer im Popup-Dialogfeld mehrere Dateien gleichzeitig auswählen

<input type="file" multiple="multiple" name="file" id="file">
2. Implementieren Sie den Datei-Upload von der Funktion zum Ziehen des Computers zur Webseite und Hinzufügen der Dateiwarteschlange

Hier verwenden wir Dragover- und Drop-Ereignisse, um die Datei-Drag-Funktion zu verwalten

Der Dragover wird hier zum Verschieben beim Verschieben auf das angegebene Element verwendet Wir binden die Dragover-Zeit an den Körper, um das Ereignis des Ziehens der Datei auf der Seite zu verarbeiten.

Verwenden Sie das Drop-Ereignis, um das Ereignis zu verarbeiten, wenn die Maus losgelassen wird. Zu diesem Zeitpunkt sollte es sein Die Dateien werden zur weiteren Verarbeitung in die Upload-Warteschlange hinzugefügt Das Hochladen von Dateien über die WebSocket-Schnittstelle und die andere über Ajax haben ihre eigenen Vor- und Nachteile. Abgesehen von der Verwendung unterschiedlicher Protokolle sind andere Algorithmen grundsätzlich sehr ähnlich Um die WS-Schnittstelle zu aktivieren, wird das relativ praktische Ajax verwendet, um die Idee des Haltepunkt-Uploads zu veranschaulichen.

document.body.addEventListener(&#39;dragover&#39;, dragFile, false);
function dragFile(evt) {
 evt.stopPropagation();
 evt.preventDefault();
 evt.dataTransfer.dropEffect = &#39;copy&#39;;
}
Schließlich besteht der Kerninhalt des Lebenslauf-Uploads darin, die Datei zu „schneiden“ und sie dann Stück für Stück auf den Server zu übertragen. Allerdings birgt dieser scheinbar einfache Upload-Prozess unzählige Fallstricke.

Das erste ist die Dateiidentifizierung, wie Sie dem Server mitteilen können, wie viele Teile Sie geschnitten haben und wie der Server die von Ihnen hochgeladenen Dateien schließlich zusammenführen soll berücksichtigt werden.
document.body.addEventListener(&#39;drop&#39;, dropFile, false);
function dragFile(evt) {
 evt.stopPropagation();
 evt.preventDefault();
 // dataTransfer.files属性可以获取到所有拖动选择的文件,通过遍历可以读取到所有文件的信息。
 // 遍历每个文件可以获取到文件的 name、size、type、lastModifiedDate等关键信息
 var files = evt.dataTransfer.files;
 // addfile 方法 用来添加上传文件队列,在input的change事件中也需要调用
 // 该方法首先检查有无文件正在上传中,如果有就将后续加入的文件放到上传队列中,如果没有文件正在上传就直接执行上传命令
 addfile(files);
}

Bevor mit dem Hochladen der Datei begonnen wird, müssen wir einen „Handshake“-Prozess mit dem Server durchführen, dem Server die Dateiinformationen mitteilen und dann mit dem Server die Größe der Slices vereinbaren Nach einem Konsens mit dem Server können wir mit der Übertragung der nachfolgenden Dateien beginnen.

Das Front-End muss jedes Dateistück an das Back-End übergeben. Nach Erfolg müssen sowohl das Front-End als auch das Back-End für nachfolgende Haltepunkte markiert werden.

Wenn die Dateiübertragung unterbrochen wird, kann der Benutzer die Datei erneut auswählen und anhand des Logos feststellen, ob ein Teil der Datei hochgeladen wurde. Wenn ja, können wir mit dem Hochladen der Datei entsprechend dem letzten fortfahren Fortschritt, um die Funktion zum Fortsetzen des Uploads zu erreichen.

4. Front-End-Slice von Dateien

Mit der HTML5-Datei-API ist das Schneiden von Dateien viel einfacher als gedacht.

Verwenden Sie einfach die Slice-Methode

var packet = file.slice(start, end);

  • Der Parameter start ist die Position, an der das Slice beginnt, und end ist die Position, an der das Slice endet. Die Einheiten sind alle Bytes. Durch die Steuerung von Start und Ende können Sie eine Dateisegmentierung


    wie

erreichen. 5. Hochladen von Dateifragmenten

Im vorherigen Teil haben wir dazu die Slice-Methode verwendet Dateien hochladen In mehrere Teile unterteilt, müssen diese Fragmente als Nächstes auf den Server übertragen werden.

Hier verwenden wir die

Post-Anfrage

von Ajax, um
file.slice(0,1000);
file.slice(1000,2000);
file.slice(2000,3000);
// ......

zu implementieren

textpop-up
var xhr = new XMLHttpRequest();
var url = xxx // 文件上传的地址 可以包括文件的参数 如文件名称 分块数等以便后台处理
xhr.open(&#39;POST&#39;, url, true);
xhr.onload = function (e){
 // 判断文件是否上传成功,如果成功继续上传下一块,如果失败重试该快
}
xhr.upload.onprogress = function(e){
 // 选用 如果文件分块大小较大 可以通过该方法判断单片文件具体的上传进度
 // e.loaded 该片文件上传了多少
 // e.totalSize 该片文件的总共大小
}
xhr.send(packet);

    Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die HTML5-Datei-API zur Implementierung der Haltepunktwiederaufnahme. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Erklärung dieser Website
    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

    Heiße KI -Werkzeuge

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    Video Face Swap

    Video Face Swap

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

    Heiße Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    Heiße Themen

    PHP-Tutorial
    1511
    276
    Wie behandelt der HTML5 -Parser Fehler? Wie behandelt der HTML5 -Parser Fehler? Aug 02, 2025 am 07:51 AM

    Html5ParserShandlemalformedhtmlByFollowingadeterministicalgorithMtoensureconsistandrobustrering.1.FormSatchedorunclosedTags, theparsenaautomatisch -clostagsandaditadsnestingbasedoncontext, solches asclosousableaSforeaandreopeeaandreopeeaandreopeaTreopering

    Was sind HTML5 -Datenattribute? Was sind HTML5 -Datenattribute? Aug 06, 2025 pm 05:39 PM

    Html5datAatttributesArecustom, validHtmlattributesusesedTostoreExtrainFormationInelementsforjavaScriptorcs.1.TheyaredefinedasData-*Attribute, LikeData-User-ID = "123" .2.

    Was ist der Unterschied zwischen  und  in HTML5? Was ist der Unterschied zwischen und in HTML5? Aug 04, 2025 am 11:02 AM

    Bitte klären Sie die beiden HTML5 -Elemente oder -attribute, die Sie vergleichen möchten, z.

    Wie funktioniert das Rechtschreibprüfungsattribut in HTML5? Wie funktioniert das Rechtschreibprüfungsattribut in HTML5? Aug 03, 2025 pm 02:46 PM

    ThespellCheckatTributEinHtml5ControlSwhetheBrowserChecksSpellingAndgrammarinedElements.2

    H5 Zahlungshandler -API für benutzerdefinierte Zahlungsströme H5 Zahlungshandler -API für benutzerdefinierte Zahlungsströme Aug 02, 2025 pm 01:37 PM

    PaymentHandlerapi ist Teil des Webpayments -Standards als Erweiterung von PaymentRequestAPI, und es besteht die Kernaufgabe darin, Entwicklern zu ermöglichen, einen "Zahlungsverarbeitungsverarbeiter" für die Implementierung von benutzerdefinierten Zahlungsprozessen zu registrieren. Es registriert Zahlungsmethoden über den Servicearbeiter und kombiniert die Beantragung der Zahlungsanmeldung im Rahmen des. Well Bekannten Verzeichnis, um Zahlungsverarbeitungsinformationen zu deklarieren. Bei Verwendung wird die Zahlungsanforderung über die PaymentRequest -Schnittstelle eingeleitet, der registrierte Zahlungsabwickler wird aufgerufen und die vollständige () -Methode wird aufgerufen, nachdem die Zahlung abgeschlossen ist. Zu den gemeinsamen Vorsichtsmaßnahmen gehören: 1. HTTPS -Bereitstellung; 2. Konfigurieren Sie den Dienst ordnungsgemäß

    Wie benutze ich die Canvas -API für die grundlegende Zeichnung in HTML5? Wie benutze ich die Canvas -API für die grundlegende Zeichnung in HTML5? Aug 07, 2025 am 07:15 AM

    Um die HTML5Canvas -API für die grundlegende Zeichnung zu verwenden, erstellen Sie zunächst das Canvas -Element in HTML und setzen Sie das Breiten- und Höhenattribut und erhalten Sie dann seinen 2D -Rendering -Kontext über JavaScript. 1. Verwenden Sie Fillrect, Strokerect und Clearrect, um zu zeichnen und zu klären. 2. Erstellen Sie Pfade und zeichnen Sie Linien oder benutzerdefinierte Formen durch BeginnPad, MoveTo, Lineto und Conepath. 3. Zeichnen Sie ARC, um Kreise oder Bögen zu zeichnen. V. 5. Fillstyle, Strokestyle, Lin

    Was ist das Readonly -Attribut in HTML5? Was ist das Readonly -Attribut in HTML5? Aug 08, 2025 am 11:55 AM

    ThereadOnlyAttributEinHtml5MakesFormInputsnon-editableWilestillaLaLaSubermingAndusSerInteraction; 1.itappliestoandELements; 2.ISABOOLEANATTRIBUTE, bald "readonly" NeedStobePresent;

    Was sind die unterstützten Audioformate in HTML5? Was sind die unterstützten Audioformate in HTML5? Aug 05, 2025 pm 08:29 PM

    Der HTML5 -Audioformatunterstützung variiert vom Browser bis zum Browser. Zu den am häufigsten verwendeten Formaten gehören: 1.mp3 (.mp3, Audio/MPEG, unterstützt von allen Mainstream -Browsern mit der besten Kompatibilität); 2.WAV (.WAV, Audio/WAV, unterstützen bessere, aber große Dateien, geeignet für kurze Audio); 3.ogg (.ogg/.oga, Audio/Ogg, Chrome, Firefox, Opernunterstützung, Safari und IE werden nicht unterstützt, Open Source -frei); 4.AAC (.AAC/.M4A, Audio/AAC, Safari, Chrom, Randunterstützung, Firefox -Unterstützung ist begrenzt und häufig in Apple -Geräten verwendet). Um die Kompatibilität zu gewährleisten, die

    See all articles