2009-05-24 14 views
2

私は、ユーザーがいっぱいになるフォームを持っています(JSPページ)。入力の1つは「ファイル」タイプです。新しいウィンドウがポップアップするプレビューボタンがあり、javascriptを使用して塗りつぶしたフォームをレイアウトして表示します。 "ファイル"入力はハイパーリンクとして表示され、ユーザーがハイパーリンクをクリックすると、添付ファイルを開くことになっています。あなたがpdfを添付すれば、私はハイパーリンクをクリックすると、foxitリーダーが開きます。テキストファイルの場合は、メモ帳が開きます。ファイルを使用してWebページ内のローカルファイルを開く://

file://を使ってみましたが、何も起こっていないようです。それはfile://プロトコルがロックダウンされているMSIEのセキュリティ機能のようです。

(ActiveX、ajax)なしでこの機能を実装するにはどうしたらよいですか?

答えて

3

file://は、ユーザーのコンピュータ上のローカルファイルシステムのみを指し、多くの場合、セキュリティ対策が施されています。それは単にブラウザに依存することはできませんfile://プロトコルアクセスを許可します。

安全な唯一の方法は、ファイルをフォームに完全に提出し、サーバー側の言語(PHP、ASP.NET、Rails、Django、選択)を使用してページをレンダリングすることです。フォームデータの「きれいな」レイアウトとドキュメントのプレビューこれはフォーラムの仕組みで、プレビューボタンを押すと投稿がサーバーに送信され、サーバーが承認用にレンダリングし、承認した後、データベースに保存されて公開されます。あなたがそれを承認しなければ、それは破棄され、データベースに決して送られません。

ユーザーがページを離れないようにするには、これを検証にロールバックしてAJAXポストバックを実行します。このような静かにフォームをシリアライズして送信し、結果を返すためのjavascriptライブラリがあります。 JQuery Formsがこれの良い例です(注:JQueryが必要です)。

+0

私は、ユーザーがファイルをアップロードする前に彼のことを意味すると思います。そのファイルを確認するのが好きです。だから、彼らは "C:/MyTextdocument.txt"それ自体をアップロードしたいと言うと言うと、彼は私が動作すると期待している "file:// c:/MyTextdocument.txt"を開きたいと思っていますか?ユーザーがファイルへのローカルパスを指定したためです。 – Sphvn

関連する問題