Javascript - téléchargement du Fichier, readAsArrayBuffer?
je suis en train d'essayer de télécharger un fichier sur mon serveur. Mais je ne suis pas vraiment sûr de savoir comment le faire avec readAsArrayBuffer. Cela fonctionne si j'utilise readAsBinaryString.
Si j'essaie de la console.journal il retourne uniquement 'arrayBuffer: {}'.
Après j'ai essayé de le télécharger, je peux voir à l'intérieur de post que seul un objet vide a été envoyé. Si j'utilise readAsBinaryString, je vois un tas de code binaire.
var file = document.getElementById('my_file').files[0],
reader = new FileReader();
reader.onloadend = function(e){
console.log(e.target.result);
$scope.image = e.target.result;
}
reader.readAsArrayBuffer(file);
Comment puis-je consulter mon dossier, donc je sais que c'est de travail lors de l'utilisation de readAsArrayBuffer?
Si plus d'un code est nécessaire, faites le moi savoir! Merci.
Essayez de vous connecter à la longueur de la mémoire tampon
dreyescat - Merci, oui, je reçois maintenant une partie de la sortie!
console.log(e.target.result.byteLength)
. Le code est susceptible d'être de travail, mais la console de représentation d'un ArrayBuffer
est juste arrayBuffer: {}
, et n'est pas un tas binaire des choses.dreyescat - Merci, oui, je reçois maintenant une partie de la sortie!
OriginalL'auteur Cheese Puffs | 2014-11-15
Vous devez vous connecter pour publier un commentaire.
Si vous voulez télécharger suis d'image, alors vous devez le convertir en format base64. Vous pouvez le faire soit en utilisant l'élément canvas ou en utilisant Filereader.Si vous utilisez Filereader alors vous devez utiliser
readAsDataURL()
Vous pouvez vous référer MDN pour cette
https://developer.mozilla.org/en-US/docs/Web/API/FileReader.readAsDataURL
vous pouvez aussi utiliser de la toile de l'élément
Convertir une image sur une toile, ce qui est déjà chargé
oui, pourquoi pas? readAsDataURL est juste un moyen de convertir une image en base64 chaîne de format. Vous pouvez le stocker dans une variable et l'afficher dans le formulaire ou de le stocker dans la base de données
OriginalL'auteur Ajeet Lakhani
Selon ArrayBuffer documentation
Donc comme je l'ai commenté, probablement
console.log
ne sais pas comment représenter le tampon et donc il simplement sortiesarrayBuffer: {}
.Si vous voulez montrer quelque chose dans la console, vous devez utiliser un tableau typé ou un DataView. Par exemple à l'aide d'un
Int8Array
:Voir démo
OriginalL'auteur dreyescat