Je dois sérialiser un objet File
à partir d'une entrée de fichier, afin que l'objet puisse être sauvegardé, analysé dans un objet fichier, puis lu en utilisant l'objet FileReader
.Javascript peut sérialiser un objet File
Est-ce que quelqu'un sait si cela est possible dans Google Chrome?
Je pense que le problème réside dans la protection de la propriété file.path. Les navigateurs Webkit masquent cette propriété, donc je suppose que lorsque vous la sérialisez, le chemin est supprimé.
Ensuite, bien sûr, le FileReader est incapable de le lire sans informations de chemin.
Voici un exemple:
var files = uploadControl.files[0];
var dataFile = JSON.stringify(files);
var newFile = JSON.parse(dataFile);
var reader = new FileReader();
reader.onload = (function(event) {
var fileContents = event.target.result;
});
reader.readAsText(newFile);
Rien ne se passe. Le lecteur n'est pas chargé. Si je transmets l'objet JSON, cela ne fonctionne pas non plus.
Pourquoi? Qu'est-ce que vous essayez d'accomplir? – SLaks
Vous devez normalement encoder un fichier avec quelque chose comme base64 en premier; La sérialisation avec JSON met simplement quelque chose dans une structure de données facilement analysable, mais ne gère pas nécessairement des choses comme le contenu de fichiers binaires. –
Essayer d'enregistrer sur le stockage local afin que je puisse lire plus tard le fichier au chargement de la page. Je ne veux pas enregistrer en base64, binaire ou texte d'ailleurs comme si le fichier change, je ne serai pas capable de charger les changements. Je serai coincé avec ce que j'avais lu à l'origine dans le FileReader au moment de soumettre le formulaire. –