<input type="file" id="file-id" name="file_name" onchange="theimage();">
C'est mon bouton de téléchargement.
<input type="text" name="file_path" id="file-path">
C'est le champ de texte où je dois indiquer le chemin complet du fichier.
function theimage(){
var filename = document.getElementById('file-id').value;
document.getElementById('file-path').value = filename;
alert(filename);
}
Voici le JavaScript qui résout mon problème. Mais dans la valeur d'alerte, cela me donne
C:\fakepath\test.csv
et Mozilla me donne :
test.csv
Mais je veux le chemin de fichier entièrement qualifié local. Comment résoudre ce problème ?
Si cela est dû à un problème de sécurité du navigateur, quelle est l'autre façon de procéder ?
Certains navigateurs possèdent une fonction de sécurité qui empêche JavaScript de connaître le chemin d'accès complet de votre fichier local. C'est logique : en tant que client, vous ne voulez pas que le serveur connaisse le système de fichiers de votre machine locale. Ce serait bien si tous les navigateurs le faisaient.
J'ai rencontré le même problème. Dans IE8, il est possible de contourner le problème en créant une entrée cachée après le contrôle de saisie de fichier. Il fallait alors remplir ce champ avec la valeur de son frère ou de sa sœur précédent(e). Dans IE9, ce problème a également été résolu.
La raison pour laquelle je voulais connaître le chemin d'accès complet était de créer un aperçu de l'image en javascript avant le téléchargement. Maintenant, je dois télécharger le fichier pour créer un aperçu de l'image sélectionnée.
Si vous avez vraiment besoin d'envoyer le chemin d'accès complet du fichier uploded, vous devrez probablement utiliser quelque chose comme une applet java signée, car il n'y a aucun moyen d'obtenir cette information si le navigateur ne l'envoie pas.