主要导入包:
struts2 2.3.4.1版本相关包
其他
处理接收文件Action类FileUploadAction
package com.dahuazwan.ihwsm.demo; import java.io.File; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") public class FileUploadAction extends ActionSupport { private File image; //上传的文件 private String imageFileName; //文件名称 private String imageContentType; //文件类型 private String newName; //新名称 public String execute() throws Exception { System.out.println(image); System.out.println(imageFileName); System.out.println(imageContentType); System.out.println(newName); return SUCCESS; } // set/get方法略 }
struts配置文件struts.xml:
<struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="false" /> <!-- 解决Post乱码 --> <constant name="struts.i18n.encoding" value="UTF-8" /> <constant name="struts.custom.i18n.resources" value="struts"/> <!-- 指定允许上传的文件最大字节数。默认值是2097152(2M) --> <constant name="struts.multipart.maxSize" value="20971520"/> <!-- 设置上传文件的临时文件夹,默认使用javax.servlet.context.tempdir --> <constant name="struts.multipart.saveDir " value="/" /> <package name="struts3" extends="struts-default,json-default" namespace="/"> <action name="fileupload" class="com.dahuazwan.ihwsm.demo.FileUploadAction" method="execute"> <result name="success">/index.jsp</result> </action> </package> </struts>
上传jsp页面内容:
<form action="fileupload" method="post" enctype="multipart/form-data"><!-- 表单文件上传遵循的格式 --> <input type="text" name="newName" /> <input type="file" name="image"><br> <input type="submit" value="submit"> </form>
注意点:
- form表单的method为post,且enctype为multipart/form-data
- FileUploadAction的3个属性遵守以下规则:File {1}、String {1}FileName、String {1}ContentType,
其中{1}必须和表单中file同名。如这里是image,则对应属性为image、imageFileName、imageContentType
- FileUploadAction还需要接收表单其他属性名称,则其名称必须和表单对应名称相等,如这里的newName