J'ai en fait une entrée de fichier et je voudrais récupérer les données Base64 du fichier.
J'ai essayé:
$('input#myInput')[0].files[0]
pour récupérer les données. Mais il ne fournit que le nom, la longueur, le type de contenu mais pas les données elles-mêmes.
J'ai réellement besoin de ces données pour les envoyer à Amazon S3
Je teste déjà l'API et quand j'envoie les données via un formulaire html avec le type d'encodage "multipart / form-data", cela fonctionne.
J'utilise ce plugin: http://jasny.github.com/bootstrap/javascript.html#fileupload
Et ce plugin me donne un aperçu de l'image et je récupère les données dans l'attribut src de l'aperçu de l'image. Mais lorsque j'envoie ces données à S3, cela ne fonctionne pas. J'ai peut-être besoin d'encoder les données comme "multipart / form-data" mais je ne sais pas pourquoi.
Existe-t-il un moyen de récupérer ces données sans utiliser de formulaire html?
la source
Réponses:
Vous pouvez essayer l'API FileReader. Faites quelque chose comme ceci:
la source
\xc3\xbf\xc3
au lieu d'obtenir cet encodage\xff\xd8\xff
pour les 3 premiers caractères de mon image. Que dois-je utiliser pour obtenir le deuxième encodage de ma photo?élément de fichier d'entrée:
obtenir le fichier:
la source
$('.myClass').prop('files', myFile );
J'ai créé un objet de données de formulaire et ajouté le fichier:
et j'ai:
dans les en-têtes envoyés. Je peux confirmer que cela fonctionne car mon fichier a été envoyé et stocké dans un dossier sur mon serveur. Si vous ne savez pas comment utiliser l'objet FormData, il existe une documentation en ligne, mais pas beaucoup. Explication des objets de données de formulaire par Mozilla
la source
Html:
jQuery:
Nous voulons obtenir le premier élément uniquement, car prop ('files') renvoie un tableau.
la source
input
élément, de typefile
Lors de votre
input
modification, utilisez l'FileReader
objet et lisez votreinput
propriété de fichier:FileReader chargera votre fichier et
fileReader.result
vous aurez les données du fichier au format Base64 (également le type de contenu du fichier (MIME), text / plain, image / jpg, etc.)la source
API FileReader avec jQuery, exemple simple.
Pour lire sous forme de texte ... décommentez la
//fr.readAsText(file);
ligne et le commentairefr.readAsDataURL(file);
la source
Téléchargez ci-dessus les fichiers nommés fileinput et ajoutez le chemin dans votre page d'index.
la source