servidor - subir archivos javascript
¿Cómo puedo verificar si el navegador admite la carga de archivos HTML5(objeto FormData)? (7)
Debe verificar si el navegador es compatible con la API de archivos HTML5. Lo hago comprobando si la función FileReader está configurada; si no está configurada, significa que el navegador no admitirá la API del archivo.
// Check if window.fileReader exists to make sure the browser supports file uploads
if (typeof(window.FileReader) == ''undefined'')
{
alert''Browser does not support HTML5 file uploads!'');
}
¿Cómo puedo verificar si el navegador admite la carga de archivos HTML5 (objeto FormData)?
var fd = new FormData();
Siguiendo la respuesta de esta post , pero el código no arroja la respuesta correcta sobre el navegador,
window.onload = function()
{
if (!!window.FileReader)
{
alert(''supported'');
}
else
{
alert(''not supported'');
}
}
Firefox - supported
Chrome - supported
Opera - supported
Safari - not supported
IE9 - not supported
Pero el soporte de navegador correcto debería ser,
Firefox - supported
Chrome - supported
Opera - not supported
Safari - supported
IE9 - not supported
He probado la carga del archivo html 5 en Opera y no está funcionando con seguridad.
Estoy seguro de que Safari admite la carga de archivos html 5.
Desde http://blog.new-bamboo.co.uk/2010/7/30/html5-powered-ajax-file-uploads
function supportAjaxUploadProgressEvents() {
var xhr = new XMLHttpRequest();
return !! (xhr && (''upload'' in xhr) && (''onprogress'' in xhr.upload));
};
Como FormData, la capacidad de enviar () uno, y la propiedad de carga (y su evento en progreso) son parte del nivel 2 de XMLHttpRequest, puede probar para .upload para ver si tiene un nivel 2. No lo hago tener una Mac a mano, pero la función (tristemente, pero correctamente) devuelve falso para Opera 11.50 (y verdadero para Firefox 4).
En Safari 5.1.7, Firefox <6, los datos de formulario de Opera <12.14 están soportados pero tienen errores.
Safari devolverá el tamaño de archivo 0
Opera no es compatible con el método de adición de datos de formulario
Firefox <6 no funciona correctamente
Esta es la única línea que uso para verificar si el navegador admite FormData y cargar el progreso, en jQuery:
var xhr2 = !! ( window.FormData && ("upload" in ($.ajaxSettings.xhr()) );
Pruebe if( window.FormData === undefined )
o if( window.FormData !== undefined )
.
Puede ser que use la solución provista por esta biblioteca. https://github.com/francois2metz/html5-formdata
function supportFormData() {
return !! window.FormData;
}
Fuente: https://www.new-bamboo.co.uk/blog/2012/01/10/ridiculously-simple-ajax-uploads-with-formdata/