0

struts2に画像をアップロードしようとすると、画像がアップロードされず、次のメッセージが表示されません。「struts.multipart.saveDir」プロパティ設定が見つかりません。デフォルトはjavax.servlet.context.tempdir

4

2 に答える 2

2

S2のビルドdin機能が原因でこのメッセージが表示されます。ファイルstruts.multipart.saveDir内のプロパティを使用して、またはファイル内struts.propertyの定数として、アップロードされたファイルをどこに配置するかをS2ファイルアップロードインターセプターに指示する必要があります。struts.xml

Strutsプロパティファイル

struts.multipart.saveDir=location of your choice

struts.xmlファイル

<constant name="struts.multipart.saveDir" value="your location" />

このプロパティが設定されていない場合、デフォルトでjavax.servlet.context.tempdir.Sine S2になります。saveDirを指定していない場合は、アップロードファイルを一時ディレクトリに配置しますが、プロセスが完了すると、クリーンアッププロセスのために、その一時ファイルが削除されます。 saveDirパラメーターを設定したか、アクションクラスにロジックを配置して、そこからファイルを選択し、選択した場所に移動する必要があります。

S2ファイルのアップロードの詳細については、公式ドキュメントをお読みください

于 2012-04-19T14:42:53.063 に答える
2

これは手動設定です。ファイルをアップロードしたら、ファイルを保存するために明示的に処理する必要があります(セキュリティ上の理由から、サーバーはファイルをすぐに削除します)。

import org.apache.commons.io.FileUtils;

String fullFileName = "d:/temp/"+uploadFileName;

File destFile = new File(fullFileName);

FileUtils.copyFile(upload, destFile);

ソース:FileUpload

struts.propertiesファイルで設定できます

struts.multipart.saveDir-アップロードされたファイルが配置されるディレクトリ。このプロパティが設定されていない場合、デフォルトでjavax.servlet.context.tempdirになります。

アップロードしたファイルを/tmpに入れます。私のアプリケーションはそれらを最終的な目的地に移動します

 struts.multipart.saveDir=/tmp
于 2012-04-19T14:14:24.417 に答える