檔案上傳--多檔案上傳

來源:互聯網
上載者:User

標籤:

首先先建立jsp頁面(用於多檔案上傳)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%    String path = request.getContextPath();    String basePath = request.getScheme() + "://"            + request.getServerName() + ":" + request.getServerPort()            + path + "/";%><%@ taglib uri="/struts-tags" prefix="s"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>登入頁面</title></head><body>    <s:form action="upload.action" enctype="multipart/form-data" method="post">                <s:file name="upload" label="選擇檔案" />        <br />        <s:file name="upload" label="選擇檔案" />        <br />        <s:file name="upload" label="選擇檔案" />        <br />        <s:submit name="submit" value="上傳檔案"></s:submit>    </s:form></body></html>

success.jsp頁面(用來顯示上傳成功後的檔案和檔案類型)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%    String path = request.getContextPath();    String basePath = request.getScheme() + "://"            + request.getServerName() + ":" + request.getServerPort()            + path + "/";%><%@ taglib uri="/struts-tags" prefix="s"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>成功頁面</title></head><body>    您所上傳的檔案是:<s:property value="uploadFileName"/><br/>    檔案類型:<s:property value="uploadCOntentType"/></body></html>

接下來建立UploadAction類

package cn.happy.action;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class UploadAction extends ActionSupport {    // 上傳檔案的屬性    private File[] upload;    // 上傳檔案的類型    private String[] uploadContentType;    // 上傳檔案的名稱    private String[] uploadFileName;    // 上傳檔案的地址    private String savePath;        @Override    public String execute() throws Exception {        byte[] buffer=new byte[1024];        for (int i = 0; i < upload.length; i++) {                        //建立上傳檔案的輸入資料流            FileInputStream fis=new FileInputStream(getUpload()[i]);            //建立上傳檔案的輸出資料流, getImageFileName()[i]            FileOutputStream fos=new FileOutputStream(getSavePath()+"\\"+getUploadFileName()[i]);            int length=fis.read(buffer);            while(length>0){                fos.write(buffer,0,length);                length = fis.read(buffer);                            }            fis.close();            fos.flush();            fos.close();        }        return SUCCESS;    }                public String getSavePath() {        return ServletActionContext.getServletContext().getRealPath(savePath);    }    public void setSavePath(String savePath) {        this.savePath = savePath;    }        public File[] getUpload() {        return upload;    }    public void setUpload(File[] upload) {        this.upload = upload;    }    public String[] getUploadContentType() {        return uploadContentType;    }    public void setUploadContentType(String[] uploadContentType) {        this.uploadContentType = uploadContentType;    }    public String[] getUploadFileName() {        return uploadFileName;    }    public void setUploadFileName(String[] uploadFileName) {        this.uploadFileName = uploadFileName;    }                    }

最後編寫設定檔struts.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"    "http://struts.apache.org/dtds/struts-2.3.dtd"><struts>    <!-- 動態方法引動過程 -->     <constant name="struts.devMode" value="false" />            <package name="default" namespace="/" extends="struts-default">                <action name="upload" class="cn.happy.action.UploadAction" method="execute">            <param name="savePath">/image</param>           <result name="success">/upload/success.jsp</result>        </action>    </package></struts>

實現效果展示

選擇檔案後

檔案上傳--多檔案上傳

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.