最近、ファイルパスを取得する際にいくつかの問題が発生しました。ファイルをOracle Blobにアップロードする必要があるためです。セキュリティ上の理由により、新しいブラウザはローカルURLの直接の取得をサポートしていません。次のように、オンラインでいくつかの方法を見つけました:
<script type = "text/javascript"> // fx get file path method関数readfilefirefox(filebrowser){try {netscape.security.privilegemanager.enableprivilege( "universalxpconnect"); } catch(e){alert( 'ブラウザーセキュリティ設定のためにローカルファイルにアクセスできません。これを克服するには、次の手順に従ってください。ファイルをリロード ');戻る; } var filename = filebrowser.value; //このステップは、クライアントの完全なパスを取得できます。以下の判断が複雑すぎるかどうか、そして以下の判断も非常に複雑です。 var file = components.classes ["@mozilla.org/file/local;1"] .createinstance(components.interfaces.nsilocalfile); Windows file.initwithpath(filename.replace(///// g、 "////"))のバックスラッシュを試してください。 } catch(e){if(e.result!= components.results.ns_error_file_unrecognized_path)throw e; alert( "file '" + filename + "'はロードできません:相対パスは許可されていません。このファイルに絶対パスを提供してください。");戻る; } if(file.exists()== false){alert( "file '" + filename + "' not in not ing");戻る; } return file.path;} //異なるブラウザに従ってパスを取得するfunction getVl(obj){// judge browser 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(/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(); file_url = document.selection.createrange()。text; } else if(sys.firefox){// fx // file_url = document.getElementbyId( "file")。ファイル[0] .getasDataurl(); } else if(sys.chrome){file_url = obj.value; } // alert(file_url); document.getElementById( "Text")。innerhtml = "ファイルドメインの完全なパスを取得します。 onchange = "getVl(this)" />上記のコードは通常、IE 6 78。IE9、Document.Selection.Createrange()で使用されます。
最後に、テストでは、IE9では、ファイル制御がフォーカスを取得した場合、document.selection.createrange()がアクセスを拒否することがわかりました。
したがって、obj.select()の後に文を追加するだけです。
元:
else if(sys.ie> = "7.0"){// ie7、ie8 obj.select(); obj.blur(); file_url = document.selection.createrange()。text; } // obj = document.getElementById( "ファイル");JSで入力ファイルの絶対パスを取得するための上記の方法(推奨)は、エディターが共有するすべてのコンテンツです。私はそれがあなたに参照を与えることができることを願っています、そしてあなたがwulin.comをもっとサポートできることを願っています。