Javascript lire le fichier sans l'aide de l'entrée
J'ai ce code et un fichier pour être converti en base64 je dois cliquer sur Choisir un fichier et sélectionnez-le. Je veux coder en dur le nom de fichier de sorte qu'il est converti en base64 au chargement de la page.
JavaScript:
var handleFileSelect = function(evt) {
var files = evt.target.files;
var file = files[0];
if (files && file) {
var reader = new FileReader();
reader.onload = function(readerEvt) {
var binaryString = readerEvt.target.result;
document.getElementById("base64textarea").value = btoa(binaryString);
};
reader.readAsBinaryString(file);
}
if (window.File && window.FileReader
&& window.FileList && window.Blob) {
document.getElementById('filePicker')
.addEventListener('change', handleFileSelect, false);
} else {
alert('The File APIs are not fully supported in this browser.');
}
};
HTML:
<div>
<div>
<label for="filePicker">Choose or drag a file:</label><br/>
<input type="file" id="filePicker">
</div>
</br>
<div>
<h1>Base64 encoded version</h1>
<textarea id="base64textarea"
placeholder="Base64 will appear here"
cols="50" rows="15">
</textarea>
</div>
</div>
EDIT: Merci pour vos réponses, ils ont été vraiment utiles.
J'ai le sentiment que les navigateurs ne sont pas va vous permettre, de façon arbitraire, charger un fichier à partir de la utilisateurs du système de fichiers. Certains événements peuvent uniquement être générés à partir de saisie directe par l'utilisateur.
Il semble que vous ne pouvez même pas définir la valeur de
Il semble que vous ne pouvez même pas définir la valeur de
<input type="file">
éléments à partir de javascript. Voir Note: Fichier d'Entrées.OriginalL'auteur user986959 | 2014-01-14
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez tout simplement pas faire ce que vous essayez de faire. Définir le chemin d'accès pour un élément de saisie à l'aide de Javascript n'est pas possible, comme une mesure de sécurité. Veuillez vérifier ici: Comment faire pour résoudre le C:\fakepath?
OriginalL'auteur asm00
Vous pouvez lancer le chrome, le navigateur google chrome avec
--allow-file-access-from-files
drapeau, utilisezfetch()
deXMLHttpRequest()
à la demande de fichier de système de fichiers local.Voir aussi Lire XML local avec JS
OriginalL'auteur guest271314
Le Fichier API n'est pas bon de lire des fichiers locaux, sans intervention de l'utilisateur, mais l'API Web est (bien sûr, à l'intérieur de ses limites, comme ne travaillant pas dans Chrome, sans explicitement permettant l'accès à des fichiers locaux et autres joyeusetés).
Donc, c'est ici, au cas où quelqu'un d'autre a besoin d'un exemple de la façon de charger un fichier local sans intervention de l'utilisateur, c'est à dire, sans obliger l'utilisateur à appuyer sur n'importe quel touche d'ENTRÉE (mais toujours en donnant à l'utilisateur un moyen d'interrompre le chargement).
Paramètres: nom du fichier, le type de demande (texte, blob, etc.), Le type MIME et la fonction est exécutée lorsque le fichier est complètement chargé. Fichier est chargé dans la variable X, qui est ensuite utilisé pour peuplée d'un objet.
Pour interrompre la lecture du fichier, il suffit de cliquer sur la barre de progression (aussi, juste un exemple, pas indispensable pour que le programme fonctionne). Parce qu'il est asynchrone, autant de fichiers que l'on veut peut être lu en même temps (une barre de progression est créé pour chaque fichier).
Je n'ai créé les exemples pour un fichier texte et une vidéo, mais il devrait fonctionner avec tout type de fichiers.
OriginalL'auteur Cyberknight