Percorso completo dall’input di file usando jQuery

Quando chiamo val() su un input con type="file" ottengo solo il nome del file anziché il percorso completo. Come posso ottenere il percorso completo?

Non è ansible: è una funzionalità di sicurezza in tutti i browser moderni.

Per IE8 , è distriggersto per impostazione predefinita, ma può essere ritriggersto utilizzando un’impostazione di sicurezza:

Quando un file viene selezionato utilizzando il tipo di input = object file, il valore della proprietà value dipende dal valore del parametro “Includi il percorso della directory locale quando si caricano i file su un server” per la zona di sicurezza utilizzata per visualizzare la pagina Web contenente l’object di input.

Il nome file completo del file selezionato viene restituito solo quando questa impostazione è abilitata. Quando l’impostazione è disabilitata, Internet Explorer 8 sostituisce l’unità locale e il percorso della directory con la stringa C: \ fakepath \ per impedire la divulgazione di informazioni inappropriate.

In tutti gli altri browser mainstream attuali che conosco, è anche spento. Il nome del file è il meglio che puoi ottenere.

Informazioni più dettagliate e link utili in questa domanda . Si riferisce a ottenere il valore sul lato server, ma il problema è lo stesso in JavaScript prima dell’invio del modulo.

Bene, non è ansible ottenere un percorso completo ma possiamo avere un percorso temporaneo.

Prova questo:

Ti darà un percorso temporaneo e non il percorso preciso, puoi usare questo script se vuoi mostrare le immagini selezionate come in questo esempio jsfiddle (Provalo selezionando immagini e altri file): –

JSFIDDLE

Ecco il codice: –

HTML: –

   

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) --> ["+tmppath+"]"); }); 

Non è esattamente quello che stavi cercando, ma potrebbe essere che ti può aiutare da qualche parte.

come indicato sopra questo è solitamente un problema di authorization. prova e sposta il file in un’area diversa e concedilo autorizzazioni complete.

var path = $ (‘# file’). attr (“valore”);