Hinweis: Laden Sie es mit AJAX hoch, die Datei kann nicht zu groß sein, es ist am besten, weniger als drei oder vierhundert Billionen zu sein, da übermäßige kontinuierliche AJAX -Anforderungen den Hintergrund zusammenbrechen und die Daten in InputStream leer sind, insbesondere während der Google Browser -Test.
1. Einfache Segment -Lesedateien sind Blob, AJAX -Uploads auf den Server
<div class = container> <div class = panel-paneldefault> <div class = panel-heading> Lesendatei: < / div> <div class = panel-body> <Eingabe type = Datei id = Datei /> <blockquote style = wort-break: break-All;> </blockquote> </div> </div> </div>
JS:
/** Segmentierungsdateien sind Blobs und werden auf den Server hochgeladen* Segmente zum Hochladen von EXE -Dateien mit AJAX. 0]; ; // Lesen Sie einen Abschnitt des erfolgreichen Readers. {Console.info (geladen: ' + Culode +' Strom: ' + geladen); 'A Total:' + (New Date). GetTime () - StartTime.getTime ()) / 1000); // Geben Sie die Startposition und die Endposition an //console.info_start: ' + start); (BLOB);} // Lesen Sie Readblob (0); Server var fd = neuer Formdata (); ); var data = eval (' + xhr.responsetext +');
Hintergrundcode:
/// <summary> /// Upload2 Abstract Anweisungen /// </summary> öffentlicher Klasse Upload2: IHttPHandler {LogHelper.LogHelper_log = new LogHelper.LogHelper (); = Kontext; ; // Parameter // String ext = req.form [Erweiterung]; .Toint32 (Req.Form [geladen]); _file.inputStream; ); WriteLine (TotalCount + DataOne.length) .Tring ()); Return true;}}
2. Lesen Sie die Datei in Abschnitten zum Blob und laden Sie sie mit AJAX auf den Server hoch.
<div class = container> <div class = panel-paneldefault> <div class = panel-heading> Lesendatei: < / div> <div class = panel-body> <Eingabe type = Datei id = Datei /> <br /> <Eingabetyp = Button -Wert = STOP OncLight = Stop (); /Progresh> <blockquote id = Status style = wort-break: break-All;> </blockquote> </div> </div>
JS:
/** Segmentierungsdateien sind Blobs und laden Sie ihn mit AJAX auf den Server hoch, um die Größe der Datendatei hochzuladen. Lange Verbindung oder WebSocket */var FileBox = Dokument.GetElementById ('Datei'); NULL; ); E.Laden; -Current: ' + geladen); ). Value = Prozent;});} // Lesen Sie Readblob (0); ; post ',' ../ashx/upload2.ashx ', true); (xhr.Status == 500) {//console.info ('Anforderungsfehler,' + xhr.responsetext); }} // Geben Sie die Startposition an und lesen Sie die Dateifunktion Readblob (Start) {// Die Startposition und die Endposition angeben, Datei var blob = file.slice (start, starten + Schritt); );} // Die Funktion stop () {// console.info ('Stop, Culodeed:' + Culoded); Weiter, Culode: ' + Culode);
Hintergrundcode mit oben
3. Lesen Sie die Dateien in Abschnitten im binären Array und laden Sie sie mit AJAX auf den Server hoch
Die Verwendung von binären Arrays ist besonders gering, und die endgültige Datei ist mit der ursprünglichen Größe etwas abgewichen
HTML -Inhalt ist der gleiche wie oben
JS:
/** SEG Segmented Lesedateien sind Binärarray und laden Sie die Methode der Übertragung mit Binärarrays auf den Server hoch. = Dokument.GetElementById ('Datei'); Lesen Sie die Gesamtzahl var foot = null; ) // Wenn der Wert mehrfach zugewiesen wird, gingen die Daten verloren neuer Datum (); // Lesen Sie einen erfolgreichen Leser. / Segmentdaten hochladen in die Server-Uploadfile (Ergebnis, Cuload ed, function () {console.info ('geladen:' + Culoaded + '---- curo:' + geladen); // Wenn nicht fertig, fortzusetzen = Laden; } // Ergebnisse des Fortschritts = (Culoded / Total) * 100; Lesen Sie. Server var fd = neu für mdata (); (); {// console.info (xhr.responseText); / Senden Sie XHR.Send (FD);}} // Geben Sie die Startposition an. , Culoded: ' + Culodeed);
Hintergrundcode:
/// <summary> /// Upload3 Abstract Anweisungen /// </summary> öffentlicher Klasse Upload3: IHttPhandler {LogHelper.LogHelper_log = new LogHelper.LogHelper (); = Kontext; // Datei httprequest repk = _context.request; (q)). ','). ist ein Int -Typ, das größte Problem ist 1,9999999990686774g int. ; fs.write (DataOne, 0, DataOne.length);} endlich {fs.close ();} _log.writeLine); WriteSt (String Str) {httpcontext.Response.write (str);} public bool isre Usable {get {return false;}}}Zusammenfassen
Das oben genannte HTML5 -Datei -Domain+FilereAder -Lesedateien und hochgeladen auf den Server. Ich hoffe, dass es für alle hilfreich ist. Vielen Dank für Ihre Unterstützung für die VEVB Wulin -Website!