您好,登錄后才能下訂單哦!
前臺form 表單:設置method=post,enctype=multipart/form-data。
struts2在原有的上傳解析器繼承上做了進一步封裝,更進一步簡化了文件上傳。
Action需要使用3個屬性來封裝該文件域的信息:
(1)類型為File的*屬性封裝了該文件域對應的文件內容;
(2)類型為String的***FileName屬性封裝了該文件域對應的文件的文件類型;
(3)類型為String的***ContentType屬性封裝了該文件域對應的文件的類型。
具體實現:
新建web項目
添加struts2相關包
myeclipse可直接下載,右擊項目,如下。
前臺
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <html> <body> <form action="upload.action" method="post" enctype="multipart/form-data"> <input type="file" name="upload" multiple="multiple"/> <input type="submit" value="提交"/> </form> </body> </html>
配置web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>UploadFile</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> </web-app>
配置struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false"/> <constant name="struts.devMode" value="true"/> <constant name="struts.multipart.saveDir" value="/tmp"/> <constant name="struts.custom.i18n.resources" value="app"></constant> <package name="default" namespace="/" extends="struts-default"> <action name="upload" class="com.yf.action.UploadAction"> <result>/index.jsp</result> <interceptor-ref name="defaultStack"></interceptor-ref> </action> </package> </struts>
后臺代碼
public class UploadAction extends ActionSupport{ private List<File> upload; private List<String> uploadContentType; private List<String> uploadFileName; public List<File> getUpload() { return upload; } public void setUpload(List<File> upload) { this.upload = upload; } public List<String> getUploadContentType() { return uploadContentType; } public void setUploadContentType(List<String> uploadContentType) { this.uploadContentType = uploadContentType; } public List<String> getUploadFileName() { return uploadFileName; } public void setUploadFileName(List<String> uploadFileName) { this.uploadFileName = uploadFileName; } @Override public String execute() throws Exception { //文件保存路徑 String path = ServletActionContext.getServletContext().getRealPath("/images"); File file = new File(path); //不存在則創建 if(!file.exists()){ file.mkdir(); } //循環將文件上傳到指定路徑 for(int i = 0; i< upload.size(); i++){ FileUtils.copyFile(upload.get(i), new File(file,uploadFileName.get(i))); } return SUCCESS; }
結果如下
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。