<input type="file" id="file-id" name="file_name" onchange="theimage();">
Αυτό είναι το κουμπί φόρτωσης.
<input type="text" name="file_path" id="file-path">
Αυτό είναι το πεδίο κειμένου όπου πρέπει να εμφανίσω την πλήρη διαδρομή του αρχείου.
function theimage(){
var filename = document.getElementById('file-id').value;
document.getElementById('file-path').value = filename;
alert(filename);
}
Αυτή είναι η JavaScript που λύνει το πρόβλημά μου. Αλλά στην τιμή της ειδοποίησης μου δίνει
C:\fakepath\test.csv
και η Mozilla μου δίνει:
test.csv
Θέλω όμως την τοπική πλήρως προσδιορισμένη διαδρομή αρχείου. Πώς μπορώ να επιλύσω αυτό το πρόβλημα;
Εάν αυτό οφείλεται σε θέμα ασφάλειας του προγράμματος περιήγησης, τότε ποιος θα πρέπει να είναι ο εναλλακτικός τρόπος για να το κάνετε αυτό;
Ορισμένα προγράμματα περιήγησης διαθέτουν ένα χαρακτηριστικό ασφαλείας που εμποδίζει τη JavaScript να γνωρίζει την τοπική πλήρη διαδρομή του αρχείου σας. Είναι λογικό - ως πελάτης, δεν θέλετε ο διακομιστής να γνωρίζει το τοπικό σύστημα αρχείων του υπολογιστή σας. Θα ήταν ωραίο αν όλοι οι φυλλομετρητές το έκαναν αυτό.
Αντιμετώπισα το ίδιο πρόβλημα. Στον IE8 θα μπορούσε να παρακαμφθεί με τη δημιουργία μιας κρυφής εισόδου μετά το στοιχείο ελέγχου εισόδου αρχείου. Η συμπλήρωση αυτού με την τιμή του προηγούμενου αδελφού του. Στον IE9 αυτό έχει επίσης διορθωθεί.
Ο λόγος που ήθελα να μάθω την πλήρη διαδρομή ήταν για να δημιουργήσω μια javascript προεπισκόπηση εικόνας πριν από τη μεταφόρτωση. Τώρα πρέπει να ανεβάσω το αρχείο για να δημιουργήσω μια προεπισκόπηση της επιλεγμένης εικόνας.
Αν πραγματικά πρέπει να στείλετε την πλήρη διαδρομή του αρχείου που έχει αναβαθμιστεί, τότε μάλλον θα πρέπει να χρησιμοποιήσετε κάτι σαν ένα υπογεγραμμένο applet java, καθώς δεν υπάρχει κανένας τρόπος να λάβετε αυτές τις πληροφορίες αν το πρόγραμμα περιήγησης δεν τις στείλει.