¿El navegador web de Android permite subir fotos tomadas de la cámara?

Uno de los requisitos esenciales en la aplicación que estoy escribiendo es que el usuario sea capaz de cargar (entrada tipo = "archivo") una foto de dentro de un formulario.

¿El navegador web de Android admite cargas de archivos? Si sí, ¿todas las versiones 1.5+ lo admiten?

Si y no. Algunas personas parecen tener problemas para hacerlo (como se indica en los comentarios). Aunque funcionó para todos mis dispositivos, es completamente posible que un navegador diferente no implemente en absoluto esta característica .

Sin embargo, el usuario no puede cargar ningún archivo en la tarjeta SD, sino archivos de audio, vídeo e imagen que están en el almacenamiento interno / externo. El tipo de archivos que puede cargar depende de las aplicaciones instaladas. Si tiene un Administrador de archivos instalado (o enviado con el sistema operativo), también puede usarlo para cargar cualquier archivo que desee (Galería y Mediaplayer siempre deben estar presentes).

Cuando se pulsa el botón de subida de <input type="file"> , los navegadores parecen enviar el Intent.ACTION_GET_CONTENT -Intent , por lo que cada aplicación que escuche este es un posible archivo-fuente.

Puede utilizar esto:

 <input type="file" name="photo" accept="image/*" capture="camera"> 

Lo importante es

Captura = "cámara"

EDIT: según la última spec capture es un atributo booleano

El formato correcto para la entrada HTML de Device API es:

 <input type="file" name="photo" accept="image/*;capture=camera"></input> 

Esto es compatible con dispositivos con Android 3.0 (para tablets) o Android 4.0 y posteriores (para teléfonos). No tengo ni idea de qué versión de iOS empieza a apoyar esto.

Quería una manera más fácil de obtener archivos de mi teléfono en lugar de sacar la tarjeta SD y pensé que sólo tienen un programa CGI recibirlos en un servidor web por lo que tenía la misma pregunta. Escribí un pequeño script que puede cargar archivos desde computadoras remotas usando un navegador web. Se parece a esto:

 #!/usr/bin/python import os import cgi def tag(tag, contents=None, attlist=None): tagstring= "<"+tag if attlist: for A in attlist: V= attlist[A].replace('"','&quot;') attstring= ' '+A+'="'+V+'"' tagstring += attstring if contents: tagstring += ">\n"+contents.rstrip()+"\n</"+tag+">\n" else: tagstring += "/>\n" return tagstring content_type= 'Content-type: text/html\n\n' form = cgi.FieldStorage() if not form: acturl= "./up.py" ff= tag('input','',{'type':'file','name':'filename'}) + tag('input',''{'type':'submit'}) f= tag('form',ff, {'action':acturl, 'method':'POST', 'enctype':'multipart/form-data'}) H= tag('head', tag('title', "Uploader")) B= tag('body', tag('p', f)) print content_type + tag('html', H + B) elif form.has_key("filename"): item = form["filename"] if item.file: data = item.file.read() t= os.path.basename(item.filename) FILE= open("/home/user/public_html/uploads/"+t,'w') FILE.write(data) FILE.close msg= "Success! " else: msg= "Fail. " H= tag('head', tag('title', "Uploader")) B= tag('body', tag('p', msg + tag('a','Another?',{'href':'./up.py'}))) print content_type + tag('html', H + B) 

Ejecutar una prueba con un programa como este es la única manera segura de saber si su marca de navegador de teléfono hace lo que quiere, pero para mí: funcionó. Incluso pude usar Apache mod_auth para requerir un nombre de usuario y una contraseña y el navegador de Android me permitió educadamente entrar en eso. Entonces cuando seleccioné el botón del archivo del elegir, trajo para arriba una oferta del menú que me dejó elegir de la galería, ap de la música, registrador sano, y un ap del encargado de archivo instalé. Escogí un archivo de la galería y, aunque tomó su tiempo dulce, subió muy bien. Así que la respuesta a la pregunta para mí fue "sí". Y para usted – pruebe un programa de prueba como el publicado.

Sí, desde Android 3.0 puede utilizar la cámara del dispositivo a través de Device API. Este fragmento se toma de allí

 <form enctype="multipart/form-data" method="post"> <h2>Regular file upload</h2> <input type="file"></input> <h2>capture=camera</h2> <input type="file" accept="image/*;capture=camera"></input> <h2>capture=camcorder</h2> <input type="file" accept="video/*;capture=camcorder"></input> <h2>capture=microphone</h2> <input type="file" accept="audio/*;capture=microphone"></input> </form> 

Esta fuente parece interesante cuando se trata de comprobar la compatibilidad con html5 en dispositivos móviles.

  • Comunicación punto a punto entre la aplicación móvil y el navegador de PC
  • Programación de Android: ¿Por dónde empezar para crear un navegador de archivos simple?
  • Zoom en los sitios web en android sdk emulator
  • Reproducción de audio con HTML5 en el navegador de Android
  • Obtener los marcadores del navegador predeterminado y guardarlos en un archivo de texto
  • ¿Cómo puedo permitir que un usuario explore / elija un archivo para el uso de mi aplicación en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.