2012-02-16 11 views

Respuesta

10

lado cliente javascript:

<input type="file" name="file" value="" id="fileUploadField1">  
<script type="text/javascript" charset="utf-8"> 
    if (document.getElementById('fileUploadField1').disabled) 
     { document.write('your device does not allow uploads');  } 
     else 
     { document.write('your device does allow uploads');  } 
</script> 
+0

Funciona muy bien! –

+0

Para verlo usted mismo, vaya a esto desde su iDevice: http://jsfiddle.net/Q2b8E/embedded/result/ –

+0

Este enfoque dará falsos positivos en bastantes dispositivos - ver el artículo vinculado a en la respuesta de Viljami – codebox

5

Puede utilizar Modernizr marco con forms-fileinput extensión. Darle una oportunidad.

if Modernizr.fileinput 
    // you can use file inputs 

Visita la Modernizr download page y comprobar la extensión forms-fileinput (expanda el "Non-core detecta" sección).

+0

¿Podría incluir en su respuesta algún tipo de ejemplo de cómo usar Modernizer y File API Extension? Por ejemplo, una vez que la extensión agrega la prueba del lector de archivos, ¿cómo la uso? –

+0

Bajé este tema rápidamente pero después de investigar un poco más me di cuenta de que era una gran respuesta, y el estúpido stackoverflow no me permite volver a votar. Lo siento :( –

+0

está bien. 1 downvote no me duele. Al menos la respuesta puede ayudarlo de alguna manera. – Raptor

7

que podría estar interesado en leer este artículo sobre el tipo de entrada de corriente = soporte de archivos en el móvil y cómo detectarlo: http://viljamis.com/blog/2012/file-upload-support-on-mobile/ (la detección está probado que estar trabajando en ~ 120 combinaciones diferentes de navegador móvil/SO móvil).

Básicamente, solo utilizamos detección similar a Modernizr, pero usamos la detección UA como copia de seguridad para filtrar aquellos navegadores móviles que informan falsamente de soporte (realmente no parece haber otra manera de detectarlo de manera confiable usando estos dos, detección de característica y detección de navegador).

+0

La suya es una solución mucho mejor que la respuesta aceptada y yo diría a cualquiera que mire esta pregunta que considere usar esta solución en lugar de la aceptada. –

1

Modernizr ahora es compatible con una comprobación de si las cargas de archivos son compatibles o no.

Desde: What is the best way to check if user can upload files?

if(Modernizr.fileinput) { 
    //file input available! 
} else { 
    //No file input :(
} 

Si usted está preocupado por el tamaño de esta biblioteca, siempre se puede obtener un componente a la vez - http://modernizr.com/download/ ... o puede simplemente copiar el código que utilizan: https://github.com/Modernizr/Modernizr/blob/master/feature-detects/forms/fileinput.js

if(navigator.userAgent.match(/(Android (1.0|1.1|1.5|1.6|2.0|2.1))|(Windows Phone (OS 7|8.0))|(XBLWP)|(ZuneWP)|(w(eb)?OSBrowser)|(webOS)|(Kindle\/(1.0|2.0|2.5|3.0))/)) { 
    return false; 
} 
var elem = createElement('input'); 
elem.type = 'file'; 
return !elem.disabled; 
Cuestiones relacionadas