`
Java_大猫
  • 浏览: 170519 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

struts多文件上传

阅读更多
前几天给朋友写一个小程序用到了上传,关于多文件上传的问题。于是乎查了查资料。贴下代码和大家分享下。
关于struts上传 我们首先来看下actionForm类中的代码
public class FileForm extends ActionForm {

	private List<FormFile> myfile = new ArrayList<FormFile>();

	public List<FormFile> getMyfile() {
		return myfile;
	}

	public void setMyfile(List<FormFile> myfile) {
		this.myfile = myfile;
	}
	


接下来我们来看下action里的代码。关于struts的上传我采用的是 org.apache.struts.upload.MultipartRequestHandler 中的 MultipartRequestHandler
类。接下来看下action中的代码
	FileForm forms=(FileForm)form;
		//利用MultipartRequestHandler处理同时上传多个文件 
		MultipartRequestHandler mrh =forms.getMultipartRequestHandler();
		Hashtable elements = mrh.getFileElements();
		Collection values = elements.values(); 
	
		int k = 0; 
		     for (Iterator i = values.iterator(); i.hasNext();){  
			         // 取得上传的文件  
			     FormFile file = (FormFile) i.next();  
			          //获取文件字节流  
			
			     InputStream ins=file.getInputStream();
			    //以时间格式生成文件名  
			 	String path=request.getSession().getServletContext().getRealPath("/upload");
			 
			     //用输出流保存文件  
			     OutputStream fos = new FileOutputStream(path+"/"+file.getFileName());  
			 	int bytes=0;
				byte[] buffer = new byte[8192];
				while((bytes=ins.read(buffer, 0, 8192))!=-1){
					fos.write(buffer, 0, bytes);
				}
				k++;
				ins.close();
			     //关闭输出流  
			     fos.close();  
		 }  
		


这里要注意的 在JSP 页面里 file 的name 要有所不同这样才能实现多文件上传,如果所写的JS 里面的FILE  名字都相同 这会只能得到最后一个文件,
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics