Actionで一括ファイルアップロードのカプセル化を実現


現在、ファイル(特に画像)のアップロードは、フロントバックグラウンドでの応用がかなり一般的で、アイコンのアップロード、資料の共有などが最も基本的な応用となっている.我々は万能なパッケージング方法によって一労永逸の効果を実現することを望んでいる.
    次に、具体的な実装について説明します.
    まず、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本プロジェクトの下のフォルダに保存されていたが、次に本プロジェクトのアップロードファイルを他のプロジェクトのフォルダの下にアップロードすることを実現しなければならない.