Récemment, j'ai rencontré des problèmes pour obtenir le chemin du fichier parce que je devais télécharger des fichiers sur Oracle Blob. Pour des raisons de sécurité, le nouveau navigateur ne prend pas en charge l'obtention directe d'URL locales. J'ai trouvé des méthodes en ligne, comme suit:
<script type = "text / javascript"> // fx Get File Path Method Fonction readFileFireFox (fileBrowser) {try {netscape.security.privilegeManager.enablePrivilege ("UniversalXpConnect"); } Catch (e) {alert ('Le fichier local ne peut pas être accessible en raison des paramètres de sécurité du navigateur. Pour surmonter cela, veuillez suivre les étapes suivantes: (1) Entrez "À propos: config" dans la barre d'adresse; (2) Cliquez avec le bouton droit et sélectionnez New-> Boolean; (3) Entrer "Signed.Applets.codebase_Principal_Support" (Exclusion des devis) As The Name of a Preference; Cliuez-vous; pour recharger le fichier '); retour; } var filename = filebrowser.value; // Cette étape peut obtenir le chemin complet du client. La question de savoir si le jugement ci-dessous est trop compliqué, et le jugement ci-dessous est également très compliqué. var file = Components.classes ["@ mozilla.org/file/local ;1"] .CreateInstance (Components.Interfaces.NSilocalFile); essayez {// back slashes pour windows file.initwithpath (filename.replace (//// g, "////")); } catch (e) {if (e.result! = Components.results.ns_error_file_unrecognised_path) throw e; alert ("file '" + filename + "' ne peut pas être chargé: les chemins relatifs ne sont pas autorisés. Veuillez fournir un chemin absolu vers ce fichier."); retour; } if (file.exists () == false) {alert ("file '" + filename + "' Non trouvé."); retour; } return file.path;} // Obtenez le chemin en fonction de différentes fonctions de navigateurs getvl (obj) {// juge le navigateur var sys = {}; var ua = navigator.useragent.tolowercase (); var s; (s = ua.match (/ msie ([/d. Sys.ie = s [1]: (s = ua.match (/ firefox // ([/ d.] +) /))? Sys.firefox = s [1]: (s = ua.match (/ chrome // ([/ d.] +) /))? Sys.chrome = s [1]: (s = ua.match (/ opéra. ([/ D.] +) /))? Sys.opera = s [1]: (s = ua.match (/ version // ([/ d.] +). * Safari /))? Sys.safari = s [1]: 0; var file_url = ""; if (sys.ie <= "6.0") {//ie5.5,ie6.0 file_url = obj.value; } else if (sys.ie> = "7.0") {// ie7, ie8 obj.select (); file_url = document.selection.createrange (). text; } else if (sy.firefox) {// fx // file_url = document.getElementByid ("file"). Files [0] .getAsDataurl (); // Le chemin obtenu est la chaîne cryptée reconnue par ff file_url = readFileFireFox (obj); } else if (sys.chrome) {file_url = obj.value; } // alert (file_url); document.getElementById ("texte"). innerHtml = "Obtenez le chemin complet du domaine du fichier comme:" + file_url;} </cript> <h1> js méthode pour obtenir le chemin complet du domaine du fichier, compatible avec différents navigateurs onchange = "getvl (this)" />Le code ci-dessus est utilisé normalement dans IE 6 7 8. Sous IE9, Document.Selection.Createrange () nie l'accès, qui semble être amélioré.
Enfin, le test a révélé que dans IE9, si le contrôle de fichier est mis au point, document.selection.createrange () nie l'accès.
Par conséquent, il vous suffit d'ajouter une phrase obj.blur () après obj.select ().
EX:
else if (sys.ie> = "7.0") {// ie7, ie8 obj.select (); obj.blur (); file_url = document.selection.createrange (). text; } // obj = document.getElementById ("fichier");La méthode ci-dessus (recommandée) pour l'obtention du chemin absolu du fichier d'entrée dans JS est tout le contenu partagé par l'éditeur. J'espère que cela pourra vous donner une référence et j'espère que vous pourrez soutenir Wulin.com plus.