• 文件上传--多文件上传


    首先先创建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>
    复制代码

    实现效果展示

    选择文件后

  • 相关阅读:
    二叉树的先,中,后序遍历
    MacOS删除iCloud云盘文件但未释放空间解决办法
    月更24/30
    iPod shuffle(第 4 代)修改VoiceOver播放语言
    在win10上安装face_recognition(人脸识别)
    FFT模板(Python)
    Huffman树模板(C++)
    如何取消 Fetch 请求 All In One
    互联网术语汇总 All In One
    Vue 3 Migration Guide All In One
  • 原文地址:https://www.cnblogs.com/zsping/p/5946563.html
Copyright © 2020-2023  润新知