标签: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