これは、Windows 7プラットフォーム上のローカルJavaサーバーを使用したファイルアップロード機能のテストに関する質問です。問題はMarkoの入力から進化したので、私はそれを編集したので、同じ課題に挑戦する人は進化の詳細に時間を無駄にせず、早く結論に達することができます。Javaアプリケーションコンテキスト外からの画像の表示。
WAR構造の外のフォルダにファイルをアップロードしてそこから正しく読み込むことが課題でした。たとえば、画像をc:/tmp/
にアップロードして、画像<img src="c:/tmp/test.jpg" />
を表示する確認ページにリダイレクトします。アップロードは機能しましたが、画像は表示されませんでした。ローカルホストのブラウザは、c:
を使用してローカルディスク構造からのロードを拒否するため、Markoの入力に基づいて、これは意味があります。たぶんこれらは、デフォルトのパスを設定できないファイル入力コントロールのものと同様のセキュリティ上の考慮事項です...
次のタグは、ローカルに作成された.htmlファイルで動作しますが、jspに貼り付けると動作しません。そして違いは、ブラウザがlocalhostを使用してjspに到達することです。
<img src="c:/tmp/test.jpg" />
ソリューション
私はマルコの答えはかなり何をすべきかを定義していることと思います。私はそのアプローチには行かなかったが、明らかにそれを行うより良い方法であり、私はそれを答えとして受け入れる。ありがとう、マルコ!
Webサーバーのインストールを気にせず、ハックをして喜んで生きている人にとっては、ここで私がしたことがあります。この場合も、サーバーに展開する前にそのフォルダを消去することを覚えておく必要があるため、WAR構造にファイルをアップロードする必要はありませんでした。しかし、そのアップロードフォルダはまだアクセス可能でなければならないので、別のダミープロジェクトを作成し、そのアップロードフォルダをWebContentの下に置くだけです。これは私のローカルテストの目的のために働く。唯一の厄介な点は、ファイルをアップロードした後、EclipseでダミープロジェクトのWebContentを更新する必要があることです。
config.properties
#for uploading files
fileUploadDirectory=C:/javawork/modelsite/tmp/WebContent
#for building html links
publicFileServicePrefix=http://localhost:8080/tmp
<img src="http://localhost:8080/tmp/test.jpg" /> // this works - tmp is the name of my dummy project.
'' **この** PCのローカルファイルシステム上の(架空の)場所を指し示す**ここでは、**ブラウザによって展開され、ロードされます。 –