Commons-FileUpload组件
>>Commons是Apache开放源代码组织的一个Java子项目,其中的FileUpload是用来处理http文件上传的子项目。
>>Commons-FileUpload组件特点
>>使用简单:可以方便的嵌入到JSP文件中,编写少量代码即可完成文件的上传功能;
>>能够全程控制上传内容;
>>能够对上传文件的大小、类型进行控制;
环境要求
>>commons-fileupload-xxx.jar
>>commons-io-xxx.jar
获取方式
>>http://commons.apache.ore/fileupload 下载Commons-FileUpload组件
>>http://commons.apache.ore/io 下载Commons-IO组件
-—————————————————————————————————————————————————
实现步骤
>>设置表单提交属性
<s:form enctype="multipart/form-data" method="post">
<s:file name="upload" value="上传"></s:file>
</s:form>
>>编写文件上传处理Action
Action中有3个必须的属性
private File upload; //对应表单的name,是临时文件,tmp文件
private String uploadContentType; //前面要和表单的name一致,后面的ContentType固定。
private String uploadFileName; //前面要和表单的name一致,后面的FileName固定。
public String execute() throws IOException{
File destFile = new File(ServletActionContext.getRequest().getRealPath(
"/upload"+"/"+this.getUploadFileName() ));
FileUtils.copyFile(upload,destFile);
}
"/upload"存储路径可以在配置配入,用一个值接受
private String savaPath;
>>配置Action
<action name="upload" class="全路径名">
<param name="savaPach">/upload</param>
<result>/upload.jsp</result>
<interceptor-ref name="fileUpload">
<param name="maximumSize">521000</param>//上传文件大小
<param name="allowedTypes">image/jpeg,image/gif</param>//文件类型
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
在jsp页面显示
<img alr="" src="upload/<s:property value='uploadFileName'/> "/>
__________________________________________________________________
多文件上传
表单设置
>>多个FIle控件
>>name属性相同
Action的修改
>>将三个属性的类型修改成数组类型
private File[] upload;
private String[] uploadContentType;
private String[] uploadFileName;
Action的配置
<constant name="struts.multipart.maxSize" value="所有上面文件大小"/>