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 名字都相同 这会只能得到最后一个文件,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值