标签:struts for 文件大小 没有 BMI object private app 多文件
和单个文件上传配置都是一样的,只是在action中接受参数时候,接受的是数组,不再是单个的文件。
一,action的实现:
public class MutableFilesUpload extends ActionSupport {
private static final long serialVersionUID = 1L;
public File[] uploadObjects;
public String[] uploadObjectsFileName;
public String[] uploadObjectsContentType;
public String moreInfo;
public String upload() {
System.out.println(moreInfo);
// 1.拿到ServletContext
ServletContext servletContext = ServletActionContext
.getServletContext();
// 2.调用realPath方法,获取根据一个虚拟目录得到的真实目录
String realPath = servletContext.getRealPath("/files");
// 3.如果这个真实的目录不存在,需要创建
File file = new File(realPath);
if (!file.exists()) {
file.mkdirs();
}
// 4.把文件存过去
// 剪切:把临时文件剪切指定的位置,并且给他重命名。 注意:临时文件没有了
for (int i = 0; i < uploadObjects.length; i++) {
System.out.println("one file name: " + uploadObjectsFileName[i]);
uploadObjects[i].renameTo(new File(file, uploadObjectsFileName[i]));
}
return SUCCESS;
}
}
二,配置action
<action name="mutable_uploads" class="gy.upload.MutableFilesUpload" method="upload"> <!-- 指定(限制)上传文件的类型,定义局部拦截器,修改默认拦截器的属性 "fileUpload.maximumSize" :限制上传最大的文件大小。 "fileUpload.allowedTypes":允许上传文件的类型。 "fileUpload.allowedExtensions":允许上传文件的可扩展文件类型。 --> <interceptor-ref name="defaultStack"> <param name="fileUpload.maximumSize">500000000</param> <param name="fileUpload.allowedTypes">text/plain,application/vnd.ms-powerpoint</param> <param name="fileUpload.allowedExtensions">.txt,.ppt</param> </interceptor-ref> <result>/success.html</result> <!-- 出现错误自动会返回input结果,进入结果视图 --> <result name="input">/fail.html</result> </action>
三,表单的实现
<body> <form action="mutable_uploads" method="post" enctype="multipart/form-data"> 文件:<br> <input type="file" name="uploadObjects"><br> <input type="file" name="uploadObjects"><br> more info: <input type="text" name="moreInfo"><br> <input type="submit" value="提交"><br> </form> </body>
(27) java web的struts2框架的使用-基于表单的多文件上传
标签:struts for 文件大小 没有 BMI object private app 多文件
原文地址:https://www.cnblogs.com/yangzigege/p/9462390.html