Remarque: Téléchargez-le avec AJAX, le fichier ne peut pas être trop grand, il est préférable d'être inférieur à trois ou quatre cents billions, car les demandes excessives de l'Ajax sont effondrer l'arrière-plan, et les données dans InputStream seront vides, en particulier pendant le Google Test du navigateur.
1. Les fichiers de lecture du segment simple sont Blob, Ajax télécharge sur le serveur
<div class = Container> <div class = Panel Panel-Default> <div Class = Panel-Heading> Lecture Fichier: </ Div> <div class = Panel-Body> <Input Type = File ID = File /> <Blockquote Style = Break-Break: Break-All;> </ Blockquote> </div> </div> </div>
JS:
/ ** Les fichiers de segmentation sont des blobs et téléchargés sur les segments du serveur * pour télécharger les fichiers EXE avec ajax lancera une exception * / var filebox = document.getElementByid ('file'); 0]; ; {Console.info ('chargé:' + Culoaded + 'Current:' + chargé); 'A Total:' + (new Date (). GetTime () - startTime.getTime ()) / 1000); // Spécifiez la position de départ et la position finale de lecture //console.info_start: '+ start); (blob);} // Démarrer ReadBlob (0); Server var fd = new FormData (); )); var data = eval ('+ xhr.ResponSeText +');
Code d'arrière-plan:
/// <summary> /// upload2 Résumé Instructions /// </ Summary> Public Class upload2: ihttphandler {LOGHELPER.LOGHELPER_LOG = New Loghelper.LogHelper (); = contexte; ; .Toint32 (req.form [chargé]); _File.InputStream; ) ;; newname, filemode.append, fileAccess.write, fileshare.read, 1024); writeLine (totalCount + dataone.length) .tring ()); writeStr (Données de segment enregistrées avec succès);} private void writstr (String str) {httpcontex Retour true;}}
2. Lisez le fichier dans les sections pour bloquer et téléchargez-le sur le serveur avec Ajax.
<div class = Container> <div class = Panel Panel-Default> <div class = Panel-heading> Lecture Fichier: </ div> <div class = Panel-body> <input type = file id = file /> <br /> <Type d'entrée = Button Value = Stop onclight = stop (); / Progress> <Blockquote id = Status Style = Word-Break: Break-All;> </lockquote> </div> </div>
JS:
/ ** Les fichiers de segmentation sont des blobs et téléchargez-le sur le serveur par AJAX * Utilisez AJAX pour soumettre la taille du fichier de données. Connexion longue ou WebSocket * / var FileBox = Document.getElementyId (Fichier '); null; ); e.loaded; if (perderead == false) return false; -Current: '+ chargé); ). Value = pour cent;});} // Démarrer la lecture de ReadBlob (0); ; Post ',' ../ashx/upload2.ashx ', true); (xhr.status == 500) {//console.info ('Erreur de demande,' + xhr.ResponSeText); }} // Spécifiez la position de départ, lisez la fonction de fichier readblob (start) {// Spécifiez la position de départ et la position finale, lisez le fichier var blob = file.slice (start, start + étape); );} // Suspende la fonction stop () {// console.info ('stop, culoaded:' + culoaded); Continuez, Culoaded: '+ Culoaded);
Code d'arrière-plan avec ci-dessus
3. Lisez les fichiers en sections dans un tableau binaire et téléchargez-le sur le serveur avec Ajax
L'utilisation de tableaux binaires est particulièrement faible, et le fichier final est un peu dévié de la taille d'origine
Le contenu HTML est le même que ci-dessus
JS:
/ ** Les fichiers de lecture segmentés SEG sont un tableau binaire et télécharger sur le serveur par Ajax pour utiliser la méthode de transmission à l'aide de tableaux binaires. = Document.getElementById (Fichier '); de lire le nombre total var foot = null; ) // Si la valeur est attribuée plusieurs fois, les données seront perdues. Nouvelle date (); / Télécharger les données du segment sur le serveur uploadfile (résultat, Cuload ed, function () {console.info ('chargé:' + Culoaded + '---- Current:' + chargé); // Si non terminé, continuez Culoaded + = Chargé; if (cultiver <total) {oade);} else {console.log ('Total Time:' + (new Date (). GetTime () - startTime.getTime ()) / 1000); } // Afficher les résultats Progress = (Culoaded / Total) *; Commencez la lecture. Server var fd = nouveau pour mdata (); (); {// Console.info (xhr.ResponSext); / Démarrer l'envoi xhr.send (fd);}} // Spécifiez la position de départ. , Culoaded: '+ Culoaded); ENABLEAUX = FAUX;
Code d'arrière-plan:
/// <summary> /// upload3 Résumé Instructions /// </summary> public class upload3: ihttphandler {loghelper.loghelper_log = new Loghelper.loghelper (); = Contexte; (Q)). ','). est un type INT, le plus gros problème sera de 1,99999999990686774 INT LOCED = CONVERT.TOINT32 (req.form [chargé]); ; fs.write (dataone, 0, dataone.length);} enfin {fs.close ();} _log.writeLine); WriteStr (String str) {httpcontext.response.write (str);} public bool isre utilisable {get {return false;}}}Résumer
Ce qui précède est le domaine du fichier HTML5 + FilereReader Lire les fichiers et le télécharger sur le serveur. Merci beaucoup pour votre soutien pour le site Web VEVB Wulin!