0

ボタンを使用してクライアントから 1 つのファイルをアップロードする必要があります。完全なクライアント パスを取得する必要があります。たとえば、

ユーザーがこのローカル マシンからファイルをアップロードしたとします。さらに進みます。どうすれば入手できますか?

私は FileUpload1.PostedFile.FileName を使用しました...しかし、IEでは正常に機能しますが、Firefoxでは機能しません...

それで、FirefoxとChromeについてこれを手伝ってもらえますか...

4

4 に答える 4

2

良い情報源:

http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspx

下部にある「ファイル アップロード コントロール」セクションを確認してください。引用:

さらに、「ファイルのアップロード時にローカル ディレクトリ パスを含める」URLAction は、インターネット ゾーンに対して「無効」に設定されています。この変更により、潜在的に機密性の高いローカル ファイル システム情報のインターネットへの漏洩が防止されます。たとえば、フル パス C:\users\ericlaw\documents\secret\image.png を送信するのではなく、Internet Explorer 8 はファイル名 image.png のみを送信するようになりました。

これは、サイトが信頼されている (IE で) / 古いブラウザーである場合に可能であることを示唆しています。

于 2012-06-08T11:46:56.383 に答える
1

いいえ、できません。セキュリティ上の制限により、ブラウザーはそれを許可しません。

必要なファイルを javascript で設定できれば、ハッカーはあなたの PC から多くのファイルを盗むことができます。

そのため、asp.net またはそれ以外の場合、ブラウザーで完全なクライアント パスを取得することはできません。

于 2012-06-08T11:44:32.680 に答える
1

http://www.ietf.org/rfc/rfc2184.txtおよびhttp://www.ietf.org/rfc/rfc2388.txtは、これを議論する関連する RFC のようです。それらは非常に長いですが、要するに、パスではなくファイル名を実際に取得するということです。

ブラウザーはこれらの標準に従うため、標準のブラウザー インターフェイスからは必要な情報を取得する方法がありません。

これにより、javascript、flash、silverlight などの他の手法が残ります。

Javascript はブラウザー オブジェクト モデルを介してすべての作業を行うため、デフォルトでは役に立ちません。ファイル システムを操作することはすべてセキュリティ リスクと見なされます (ファイル システムをランダムなページで調べたいですか?)。

独自の flash または sliverlight アップロード ツールを作成する (または見つける) ことで、より豊富な情報を収集できる可能性がありますが、私はこれらのテクノロジについてあまり知りません。結局のところ、クライアント コンピュータへのアクセスに関して同様の規則に従うことを期待しています。

したがって、どこでも従う可能性が高いRFCとその精神は、いいえ、これを行うことはできないと言っています。

重要な場合はいつでもユーザーにテキストボックスのパスを尋ねることができ、それをコピーしてもらうことができます...

于 2012-06-08T11:47:42.180 に答える
0

それを行う方法はあるようですが、同時に、それがあなたのマシンである場合にのみ機能するようです. ここにそれを説明するリンクがあります。

http://www.codingforums.com/showthread.php?t=72288

この問題が発生するのは、悪意のあるスクリプトが制御下にない情報にアクセスしようとして、ユーザーにプロンプ​​トを表示するためです。したがって、これがあなたの管理下にあるマシンまたはあなたを信頼するユーザー向けでない限り、それは最善のアイデアとは言えません。セキュリティ リスク アラートを表示するほとんどのユーザーは、常にそれらをブロックします。

于 2012-06-08T11:43:54.397 に答える