ローカル ファイルに IMG タグを作成しようとしているローカルホスト マシン (ポート 8080) でサーバーを実行しています。ただし、ファイルは Firefox 11 では表示されません。
私はもともと Javascript を使用してイメージ タグを作成していましたが、それが失敗したため、HTML に戻ってファイルを直接参照するさまざまな方法を試しました。次のいずれも機能しません。
<img src="file:///localhost:8080/C://Users/me/IMG_1000.JPG">
<img src="file:///localhost/C://Users/me//IMG_1000.JPG">
<img src="file:///C://Users/me/IMG_1000.JPG">
最後の URL をアドレス バーに直接貼り付けると、画像が正常に開きます。
ここの指示に従いました:
http://kb.mozillazine.org/Firefox_:_Issues_:_Links_to_Local_Pages_Don%27t_Work
user.js と prefs.js の両方を、直接および about:config ビューアーを介して変更しようとしました。
[ヘルプ] -> [トラブルシューティング情報] -> [プロファイル ディレクトリ] -> [格納フォルダーを開く] から、プロファイル ディレクトリへの正しいパスを取得しました。
追加された関連行は次のとおりです。
user_pref("capability.policy.localfilelinks.checkloaduri.enabled", "allAccess");
user_pref("capability.policy.localfilelinks.sites", "localhost:8080");
user_pref("capability.policy.policynames", "localfilelinks");
本来は「localhost:8080」の from に http:// を入れていたのですが、Firefox がそれを削除してしまいました。「http://localhost」と「http://127.0.0.1」だけでも試してみましたが、どちらもうまくいきませんでした。
しかし...奇妙なことに、about:configから入力してprefs.jsで見ることができますが、about:configからは見ることができません! これは、おそらく mozillazine の情報が古くなっているのではないかと思います。結局のところ、情報は「Firefox 1.5 以降」用であり、私は Firefox 11 を使用しています!
注: file:// アクセスを使用する理由は、マシン上のファイルへの任意のアクセスを許可したくないからです。もう少し説明すると、データベースへのインターフェースがあり、データベースにアクセスするために必要なのはパスワードだけです。パスワードを知っている人なら誰でも自分のマシンの外部からデータベースにアクセスできるようにしたいのですが、画像ファイルはデータベースの外部に存在します。サーバーを介してファイルをサーバーにアップロードするには (存在するファイルは動的であるため)、データベースで何らかの識別子を取得する新しい CGI を作成する必要がありますが、ユーザーは DB にアクセスできるため、任意のファイル名を挿入できます。彼らは欲しかった。
編集:また、ファイルの URL を window.open() することもできません。それはどのようなセキュリティ上の利点をもたらす可能性がありますか?