w3schools readasdataurl ejemplo html5 filereader

readasdataurl - HTML5 FileReader alternativa



filereader() js (2)

Safari fue el primero en implementar realmente la API de archivos HTML5, y hay varias demostraciones. Andrea Giammarchi tiene una bonita descripción en su blog . Hay varios marcos para manejar esto también que también tienen inconvenientes para Internet Explorer. Fancyupload es uno que viene a la mente.

Necesito ayuda con HTML5. Tengo un script que recorre todos los archivos cargados y obtiene los detalles de cada archivo. Actualmente estoy usando técnicas HTML5 que incluyen FileReader. La función FileReader solo funciona en Chrome y Firefox, por lo que estoy buscando una alternativa que funcione en todos los otros navegadores.

Vi la alternativa Flash de pregunta Stack Overflow para FileReader HTML 5 API , pero no pude entender cómo usar esta cosa de Flash, y no hay otras soluciones, así que puedo recorrer todos los archivos cargados y obtener cada uno detalles del archivo (que funcionará en Safari e Internet Explorer)?


Terminé sin usar FileReader en absoluto, en su lugar hice un bucle a través de event.files y obtuve cada archivo por archivos [i] y envié una solicitud AJAX por XHR con un objeto FormData (funcionó para mí porque decidí que no necesitaba obtener el datos del archivo):

var xhrPool = {}; var dt = e.dataTransfer; var files = (e.files || dt.files); for (var i = 0; i < files.length; i++) { var file = files[i]; // more code... xhrPool[i] = getXMLHttpRequest(); xhrPool[i].upload.onprogress = uploadProgress; initXHRRequest(xhrPool[i], i, file); data = initFormData(i, file); xhrPool[i].send(data); } function initFormData(uploaded, file) { var data = new FormData(); data.append(uploaded, file); // parameters... return data; } function uploadProgress() { // code.. } function initXHRRequest(xhr, uploaded, file) { // code... onreadystatechange... xhr.open("POST", "ajax/upload.php"); xhr.setRequestHeader("X-File-Name", file.name); } function getXMLHttpRequest() { if (window.XMLHttpRequest) { return new XMLHttpRequest(); } else { try { return new ActiveXObject("MSXML2.XMLHTTP.3.0"); } catch(ex) { return null; } } }