jsp页面的部分代码 <form action="insertcp.action" method="post" enctype="multipart/form-data" onsubmit="return yz()"> <table> <tr> <td>产品图片1:</td> <td><input type="file" name="attach" id="ones" /></td> <td id="divone"></td> </tr> <tr> <td>产品图片2:</td> <td><input type="file" name="attach" id="two"/></td> <td id="divtwo"></td> </tr> <tr> <td>产品参数图片:</td> <td><input type="file" name="attach" id="three"/></td> <td id="divthree"></td> </tr> <tr> <td></td> <td><input type="submit" value="上传" style="width:100px; height:30px; font-weight:bold;"/><input type="reset" value="取消" style="width:100px; height:30px;font-weight:bold;"/></td> <td></td> </tr> </table>
struts.xml 拦截器等配置少不了 <constant name="struts.ui.theme" value="simple"/> <!--解决乱码 --> <constant name="struts.i18n.encoding" value="UTF-8" /> <!-- 指定允许上传的文件最大字节数。默认值是2097152(2M)(总) --> <constant name="struts.multipart.maxSize" value="1024102400"/> <package name="default" namespace="/" extends="json-default,struts-default"> <!-- 多个文件上传 --> <action name="insertcp" class="com.juda.action.AdminGuanliaction" method="insertcp"> <!--图片存储路径--> <param name="savePath">/images</param> <interceptor-ref name="fileUpload"> <!--图片格式--> <param name="allowedTypes">/image/bmp,image/png,image/gif,image/jpeg,image/jpg,image/x-png, image/pjpeg</param> <!--图片大小,(单)个。这点容易出错,让人忽略,后面有解释--> <param name="maximumSize">1024102400</param> </interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> <result name="success" type="chain">cpaction</result> <result name="input">MyJsp.jsp</result> </action>
//文件上传产品信息上传
private File[] attach;
private String[] attachFileName;
private String[] attachContentType;
private String savePath;
public String insertcp() throws Exception{
ServletActionContext.getRequest().setCharacterEncoding("UTF-8");
//获取数组
File[] file=getAttach();
if(file.length>0 && file!=null){
for(int i=0;i<file.length;i++){
//打印出来路径
System.out.println(getSavePath()+"\\"+getAttachFileName()[i]);
//w文件上传流
FileOutputStream fos=new FileOutputStream(getSavePath()+"\\"+getAttachFileName()[i]);
//建立上传文件的输入流
FileInputStream fis=new FileInputStream(file[i]);
byte[] by=new byte[1024];
int len=0;
while((len=fis.read(by))>0) {
fos.write(by,0,len);
}
fos.close();
fis.close();
}
}
}
原文:http://my.oschina.net/u/2391545/blog/513745