Chemin complet à partir de l'entrée du fichier en utilisant jQuery

quand j'appelle val() sur une entrée avec type="file" Je n'obtiens que le nom du fichier plutôt que le chemin complet. Comment puis-je obtenir le chemin complet?

38
demandé sur Yi Jiang 2010-08-16 00:38:30

3 réponses

vous ne pouvez pas: c'est une caractéristique de sécurité dans tous les navigateurs modernes.

pour IE8 , il est désactivé par défaut, mais peut être réactivé en utilisant un paramètre de sécurité:

Lorsqu'un fichier est sélectionné en utilisant l'objet input type=file, la valeur de la propriété value dépend de la valeur du paramètre de sécurité "Include local directory path when uploading files to a server" pour la zone de sécurité utilisée pour afficher le Web page contenant l'objet input.

le nom complet du fichier sélectionné n'est retourné que lorsque ce paramètre est activé. Lorsque le paramètre est désactivé, Internet Explorer 8 remplace le lecteur local et le chemin de répertoire par la chaîne de caractères C:\fakepath\ afin d'empêcher la divulgation de renseignements inappropriés.

dans tous les autres navigateurs courants que je connais, il est également éteint. Le nom de fichier est le meilleur que vous pouvez obtenir.

plus d'informations détaillées et de bons liens dans cette question . Il se réfère à obtenir la valeur côté serveur, mais le problème est le même dans JavaScript avant la soumission du formulaire.

46
répondu Pekka 웃 2017-05-23 12:18:14

Eh bien, obtenir le chemin complet n'est pas possible, mais nous pouvons avoir un chemin temporaire.

Essayez Ceci:

il vous donnera un chemin temporaire pas le chemin exact, vous pouvez utiliser ce script si vous voulez montrer des images sélectionnées comme dans cet exemple jsfiddle(essayez-le par images selectng ainsi que d'autres fichiers): -

JSFIDDLE

voici le code: -

HTML: -

<input type="file" id="i_file" value=""> 
<input type="button" id="i_submit" value="Submit">
    <br>
<img src="" width="200" style="display:none;" />
        <br>
<div id="disp_tmp_path"></div>

JS: -

$('#i_file').change( function(event) {
var tmppath = URL.createObjectURL(event.target.files[0]);
    $("img").fadeIn("fast").attr('src',URL.createObjectURL(event.target.files[0]));

    $("#disp_tmp_path").html("Temporary Path(Copy it and try pasting it in browser address bar) --> <strong>["+tmppath+"]</strong>");
});

ce n'est pas exactement ce que vous cherchiez, mais ça peut vous aider quelque part.

15
répondu DWX 2014-07-18 06:11:09

comme indiqué ci-dessus, il s'agit habituellement d'une autorisation. essayez de déplacer le fichier dans une zone différente et accordez-lui toutes les permissions.

var path = $('#fichier").attr ("value");

-18
répondu Guivms - Guilherme Viela 2013-11-16 04:05:10