NOTA: Subirlo con AJAX, el archivo no puede ser demasiado grande, es mejor ser menos de trescientos o cuatrocientos billones, porque las solicitudes de Ajax continuas excesivas colapsarán los antecedentes, y los datos en InputStream estarán vacíos, especialmente durante Google Prueba de navegador.
1. Los archivos de lectura de segmento simples son Blob, Ajax se carga en el servidor
<Div class = Container> <div class = panel Panel-Default> <div class = panel-Heading Archivo de lectura: </div> <div class = panel-body> <input type = file id = file /> <blockquote style = word-break: break-all;> </loClockQuote> </div> </div> </div>
JS:
/** Los archivos de segmentación son blobs, y se cargan en el servidor* Los segmentos para cargar archivos exe con AJAX lanzarán una excepción* /var fila de archivos = document.getElementById ('file'); 0] ;// Lea una sección de lector exitoso. {Console.info ('cargado:' + culoaded + 'corriente:' + cargado); 'A Total:' + (New Date (). // Especifique la posición inicial y la posición final lee el archivo //console.info_start: ' + inicio); (blob);} // Comenzar a leer readblob (0); servidor var fd = nuevo FormData (); ); var data = eval (' + xhr.esponsetext +');
Código de fondo:
/// <summary> /// upload2 Resumen Instrucciones /// </summary> Clase pública upload2: ihttphandler {loghelper.loghelper_log = new LogHelper.LogHelper (); = contexto ;/ ; / GET parámetros // String ext = req.form [extension]; .Toint32 (Req.Form [cargado]); _file.inputStream; ) ;; WriteLine (TotalCount + DataOns.Length) .Tring ()); Return true;}}
2. Lea el archivo en secciones a Blob y cárguelo al servidor con AJAX.
<Div class = Container> <div class = panel panel-default> <div class = panel-Heading Archivo de lectura: </div> <div class = panel-body> <input type = file id = file /> <br /> <input type = Botton Value = Stop OnClight = Stop (); /Progreso> <BlockQuote id = status style = word-break: break-all;> </loClockQuote> </div> </div>
JS:
/** Los archivos de segmentación son blobs y lo cargan en el servidor por AJAX* Use AJAX para enviar el tamaño de los datos de carga. Long Connection o WebSocket */var filebox = document.getElementById ('file'); NULL; ); E.Loaded; -Current: ' + cargado); ). Valor = porcentaje;});} // Iniciar lectura de readblob (0); ; Post ',' ../ashx/upload2.ashx ', true); (xhr.status == 500) {//console.info ('Error de solicitud,' + xhr.esponsetext); }} // Especifique la posición inicial, lea la función de archivo readblob (inicio) {// Especifique la posición inicial y la posición final, lea el archivo var blob = file.slice (start, start + step); );} // suspender la función stop () {// console.info ('parar, culoaded:' + culoaded); Continuar, Culoaded: ' + Culoaded);
Código de fondo con arriba
3. Lea los archivos en secciones a la matriz binaria y cárguelo al servidor con AJAX
El uso de matrices binarias es particularmente bajo, y el archivo final se desvía un poco con el tamaño original
El contenido de HTML es el mismo que el anterior
JS:
/** Los archivos de lectura segmentados SEG son una matriz binaria, y la carga en el servidor por AJAX para usar el método de transmisión con matrices binarias. = Document.getElementById ('file'); de leer el número total var foot = NULL; )/ Si el valor se asigna varias veces, los datos se perderán. nueva fecha (); / Subir datos de segmento en el servidor uploadFile (resultado, cuload ed, function () {console.info ('cargado:' + culoaded + '---- corriente:' + cargado); // si no está terminado, continúe con CulOaded + = Cargado; } // Mostrar resultados de resultados = (Culoaded / Total) * 100; Comience a leer. servidor var fd = nuevo para mData (); (); {// console.info (xhr.Responsetext); / Comience a enviar XHR.SEND (FD);}} // Especifique la posición inicial. , CULOADED: ' + CULOADED);
Código de fondo:
/// <summary> /// upload3 instrucciones abstractas /// </summary> public class upload3: ihttphandler {loghelper.loghelper_log = new LogHelper.LogHelper (); = Contexto; (q)). ','). es un tipo int, el mayor problema será 1.99999999990686774g int cargado = convert.toint32 (req.form [cargado]); ; fs.write (dataOne, 0, dataone.length);} Finalmente {fs.close ();} _log.writeline); WriteStr (String Str) {httpContext.Response.Write (str);} public bool isre usable {get {return false;}}}Resumir
El anterior es el HTML5 File Domain+FilererAder Leer archivos y cargarlo en el servidor que sea útil para todos. ¡Muchas gracias por su apoyo al sitio web de VEVB Wulin!