htmlファイルがローカル(私のCドライブ上)の場合は機能しますが、htmlファイルがサーバー上にありイメージファイルがローカルの場合は機能しません。何故ですか?
考えられる回避策はありますか?
クライアントがローカル ファイル システム ファイルを要求し、JavaScript を使用してファイルの内容を把握できる場合、セキュリティ上の脆弱性が発生します。
これを回避する唯一の方法は、ブラウザで拡張機能を構築することです。Firefox 拡張機能と IE 拡張機能は、ローカル リソースにアクセスできます。Chrome ははるかに制限的です。
「C:/localfile.jpg」の代わりに「file://C:/localfile.jpg」を使用すべきではありませんか?
ローカルの HTML ページにアクセスしない限り、ブラウザはローカル ファイル システムにアクセスできません。画像をどこかにアップロードする必要があります。HTMLファイルと同じディレクトリにある場合は、使用できます<img src="localfile.jpg"/>
C:
は認識された URI スキームではありません。file://c|/...
代わりに試してください。
正直なところ、最も簡単な方法は、サーバーにファイル ホスティングを追加することでした。
IIS を開く
既定の Web サイトの下に仮想ディレクトリを追加する
"NETWORK SERVICE" および "IIS AppPool\DefaultAppPool" の C: ドライブのフォルダーに適切なアクセス許可を追加します。
既定の Web サイトを更新する
これで完了です。http://yourServerName/whateverYourFolderNameIs/yourImage.jpgに移動して、そのフォルダー内の任意の画像を参照し、その URL を img src で使用できるようになりました。
これが誰かを助けることを願っています
IE 9: ユーザーが画像をサーバーに投稿する前に画像を確認するようにしたい場合: ユーザーはその Web サイトを「信頼できる Web サイト リスト」に追加する必要があります。
セキュリティ ルールに関する Newtang の見解はさておき、あなたのページを閲覧する人が で正しい画像を持っていることをどうやって知るのc:\localfile.jpg
でしょうか? できません。できると思ってもできない。一つには、Windows環境を前提としています。
Google chrome ブラウザを使用している場合は、このように使用できます
<img src="E://bulbpro/pic_bulboff.gif" width="150px" height="200px">
ただし、Mozilla Firefox を使用している場合は、「ファイル」を追加する必要があります。
<img src="file:E://bulbpro/pic_bulboff.gif" width="150px" height="200px">
あなたがやろうとしていることには2つの可能性があります。
サーバー上で実行されている Web ページで、最初に設計したコンピューター上のファイルを検索する必要がありますか?
ページで表示している PC から取得しますか?
オプション1は意味がありません:)
オプション 2 はセキュリティ ホールです。ブラウザーは、Web ページ (Web から提供される) が閲覧者のマシンにコンテンツをロードすることを禁止します。
Kyle Hudson があなたに何をする必要があるかを教えてくれましたが、それはあまりにも基本的なことなので、あなたがやりたいことはこれだけだとは信じがたいと思います。
画像をユーザーが選択したものにするのはどうですか? input:file タグを使用し、画像を選択した後、クライアント側の Web ページに表示しますか? それはほとんどのことで実行可能です。現在、IE で動作するようにしようとしていますが、すべてのマイクロソフト製品と同様に、クラスター fork() です。
画像もアップロードしてから、サーバー上の画像にリンクする必要があります。