Actionで一括ファイルアップロードのカプセル化を実現
現在、ファイル(特に画像)のアップロードは、フロントバックグラウンドでの応用がかなり一般的で、アイコンのアップロード、資料の共有などが最も基本的な応用となっている.我々は万能なパッケージング方法によって一労永逸の効果を実現することを望んでいる.
次に、具体的な実装について説明します.
まず、strutsフレームワークの下のプロジェクトが必要です.webRootディレクトリの下にアップロードファイルを保存するためにuploadフォルダを新規作成します.
次に、簡単なjspを書いて、ファイルアップロード機能を実現します.ここで、すべてのアップロードファイルボックスのname属性をfileに設定して、actionが受信するように注意します.
その後,actionを記述し,action内にまず以下の変数とそのget/setメソッドを書き込む.
それぞれの代表の意味が一目瞭然だ.
次にパッケージ方法を正式に作成します
OK、この方法はtomcatの下の対応するフォルダにファイルを保存することを実現し、保存したファイル名を教えてくれました. "upload/"+ uploadImg() すなわち,本工事の下の経路である.
ファイルがオブジェクトのプロパティである場合は、直接XXX.setXxx( "upload/"+ uploadImg()) データベースに保存
上一篇 紹介ファイルの転送
以前のファイルのアップロードはtomcat本プロジェクトの下のフォルダに保存されていたが、次に本プロジェクトのアップロードファイルを他のプロジェクトのフォルダの下にアップロードすることを実現しなければならない.
次に、具体的な実装について説明します.
まず、strutsフレームワークの下のプロジェクトが必要です.webRootディレクトリの下にアップロードファイルを保存するためにuploadフォルダを新規作成します.
次に、簡単なjspを書いて、ファイルアップロード機能を実現します.ここで、すべてのアップロードファイルボックスのname属性をfileに設定して、actionが受信するように注意します.
その後,actionを記述し,action内にまず以下の変数とそのget/setメソッドを書き込む.
private List<File> file;
private List<String> fileFileName;
private List<String> fileContentType;
それぞれの代表の意味が一目瞭然だ.
次にパッケージ方法を正式に作成します
public String uploadImg() throws IOException {
String str = null;
//
String root = ServletActionContext.getRequest().getRealPath("/upload");
//
for (int i = 0; i < file.size(); i++) {
InputStream is = new FileInputStream(file.get(i));
// ( root tomcat )
File destFile = new File(root, this.getFileFileName().get(i));
str = destFile.getName();
//
OutputStream os = new FileOutputStream(destFile);
byte[] buffer = new byte[400];
int length = 0;
while ((length = is.read(buffer)) > 0) {
os.write(buffer, 0, length);
}
is.close();
os.close();
}
return str;
}
OK、この方法はtomcatの下の対応するフォルダにファイルを保存することを実現し、保存したファイル名を教えてくれました. "upload/"+ uploadImg() すなわち,本工事の下の経路である.
ファイルがオブジェクトのプロパティである場合は、直接XXX.setXxx( "upload/"+ uploadImg()) データベースに保存
上一篇 紹介ファイルの転送
以前のファイルのアップロードはtomcat本プロジェクトの下のフォルダに保存されていたが、次に本プロジェクトのアップロードファイルを他のプロジェクトのフォルダの下にアップロードすることを実現しなければならない.