Vor kurzem habe ich einige Probleme beim Erhalten des Dateipfads gestoßen, da ich Dateien auf Oracle Blob hochladen musste. Aus Sicherheitsgründen unterstützt der neue Browser keine direkten Erhalt lokaler URLs. Ich habe einige Methoden online gefunden, wie folgt:
<script type = "text/javaScript"> // fx Dateipfadmethode Funktion ReadFileFirefox (FileBrowser) {try {netscape.security.privileGeManager.EnablePrivilege ("universalxpconnect"); } catch (e) {alert ('Die lokale Datei kann aufgrund von Browser-Sicherheitseinstellungen nicht zugegriffen werden. Um dies zu überwinden, befolgen Sie die folgenden Schritte: (1) Geben Sie "Ab" über "Konfiguration" in der Adressleiste; (2) mit der rechten Maustaste und wählen Sie New-> boolean; (3) Geben Sie "Signed.Applets. Laden Sie die Datei neu. '); zurückkehren; } var Filename = FileBrowser.Value; // Dieser Schritt kann den vollständigen Pfad des Clients erhalten. Ob das unten stehende Urteil zu kompliziert ist und das folgende Urteil auch sehr kompliziert ist. var file = components.classes ["@mozilla.org/file/local;1"] .CreateInstance (components.interfaces.nSilocalFile); Versuchen Sie {// Back Slashes für Windows File.initwithPath (Dateiname.replace (//// G, "////")); } catch (e) {if (e.result! = components.results Alert ("Datei" + Dateiname + "'kann nicht geladen werden: Relative Pfade sind nicht zulässig. Bitte geben Sie einen absoluten Pfad zu dieser Datei an."); zurückkehren; } if (file.exists () == false) {alert ("Datei '" + Dateiname + "' nicht gefunden."); zurückkehren; } returndatei.Path;} // Pfad nach verschiedenen Browsern -Funktionen GetVL (OBJ) {// Richter Browser var sys = {}; var ua = navigator.useragent.tolowerCase (); var S; (s = ua.match (/msie ([/d. weibliche+)/)? 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 (/Opera. ([/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 (); Datei_url = document.Selection.Createrange (). Text; } else if (sys.firefox) {// fx // file_url = document.getElementById ("Datei"). Dateien [0] .GetasDataRl (); // Der erhaltene Pfad ist der verschlüsselte String, der von ff File_url = ReadFileFirefox (OBJ) erkannt wurde. } else if (sys.chrome) {file_url = obj.value; } // alert (Datei_url); document.getElementById ("text"). InnerHtml = "den vollständigen Pfad der Dateidomäne abrufen als:"+file_url;} </script> <H1> JS -Methode, um den vollständigen Pfad der Dateidomäne zu erhalten, kompatibel mit verschiedenen Browsern </h1> <div id onchange = "getvl (this)" />Der obige Code wird normalerweise in IE 6 7 8 8 verwendet. Unter IE9, Dokument
Schließlich stellte der Test fest, dass in IE9, wenn die Dateisteuerung den Schwerpunkt erhält, document.Selection.createrange () den Zugriff verweigert.
Daher müssen Sie nur einen Satz obj.blur () nach obj.select () hinzufügen.
EX:
sonst if (sys.ie> = "7.0") {// IE7, IE8 obj.select (); obj.blur (); Datei_url = document.Selection.Createrange (). Text; } // obj = document.getElementById ("Datei");Die obige Methode (empfohlen) zum Erhalten des absoluten Pfades der Eingabedatei in JS ist der gesamte Inhalt, der vom Editor geteilt wird. Ich hoffe, es kann Ihnen eine Referenz geben und ich hoffe, Sie können Wulin.com mehr unterstützen.