2012-02-20 4 views
1

J'ai créé un téléchargeur de fichier en utilisant jQuery et un iFrame caché. Cela fonctionne dans les navigateurs dont j'ai besoin sur un PC. Cependant, lors du test sur un téléphone Android, j'ai trouvé le problème suivant. Pour la simplicité, je suis en train de tester cela avec une simple démo de téléchargement de fichiers.Android Choisissez le fichier à télécharger - Problème avec les fichiers DOC, PDF, etc.

J'utilise le navigateur Web Internet natif qui vient avec Android pour ouvrir: http://encodable.com/uploaddemo/

je charge la page dans le navigateur et sélectionnez le fichier choisir. Cela affiche les applications sur mon téléphone qui sont capables de sélectionner des fichiers. J'ai Astro File Manager installé donc c'est celui que j'utilise. J'ai quelques images de test et des documents de test. Si je choisis une image, tout va bien et je peux télécharger l'image avec succès. Si je choisis un document, il ne semble pas pouvoir renseigner l'emplacement du fichier correctement (bien qu'il soit rempli dans la zone de texte) car lorsque je clique sur 'Commencer le téléchargement', il déclenche l'erreur "veuillez remplir le éléments requis "comme si un fichier n'avait pas été sélectionné.

La seule différence que je vois est que les chemins utilisés pour obtenir une image par rapport à un document: -content: //media/external/images/media/11484/image.jpg -file: /// mnt /sdcard/Test%20Files/pdf.pdf/

Peut-être lié à la permission? J'ai également essayé FileExpert et OfficeSuite pour sélectionner des documents mais le même problème persiste - y a-t-il un autre navigateur de fichiers qui passe un chemin différent?

Formats de fichiers qui fonctionnent et utilisent "content: //": 'bmp', 'gif', 'jpg', 'jpeg', 'png' Formats de fichiers qui ne fonctionnent pas et utiliser "file:/// ": 'txt', 'rtf', 'doc', 'docx', 'pdf', 'tif', 'tiff'

Tous les pointeurs, très appréciés.

Répondre

1

Le problème concerne l'accès au chemin du fichier. Normalement, dans jQuery, vous utiliseriez $(this).attr('value') ou $(this).val() pour obtenir la valeur du chemin du fichier dans la zone de texte. Pour mon exemple de test, avec des images qui fonctionnent bien et vous pouvez récupérer le chemin du fichier, mais avec des documents, vous ne récupérez rien. Impair. Aucune idée pourquoi. Cela signifie donc lors de la POST des données via un formulaire, rien n'est soumis pour un document et rien n'est téléchargé.

Questions connexes