• Struts文件上传


    用两个包:一个是commons-fileupload-1.3.2.jar,另一个是commons-io-2.2.jar

    jsp界面:

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    <form action="Shangchuan_add" method="post" enctype="multipart/form-data">
    <input type="file" name="file"><br><br>
    <input type="submit" value="submit" >
    </form>
    
    </body>
    </html>

    做Action。
    三个成员:1.File file上传的文件 2.String fileFileName属性名 3.String fileContentType属性名
    org.apache.commons.io.FileUtils.copyFile很简单。

    sturts.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.enable.DynamicMethodInvocation" value="true" />
        <constant name="struts.devMode" value="true" />
        <constant name="struts.i18n.encoding" value="UTF-8"></constant>
        <constant name="struts.ui.theme" value="simple"></constant>
        <constant name="struts.multipart.maxSize" value="20971520"></constant><!-- 修改限制上传文件大小,默认是2097152 -->
    
        <package name="default" namespace="/" extends="struts-default">
    
             <action name="*_*" class="com.itnba.maya.controller.{1}Action" method="{2}">
                <result>
                    {1}_{2}.jsp
                </result>
            </action>
        </package>
    
        <include file="example.xml"/>
    
        <!-- Add packages here -->
    
    </struts>

    解决重命名问题

    package com.itnba.maya.controller;
    
    import java.io.File;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.apache.commons.io.FileUtils;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class ShangchuanAction extends ActionSupport {
        private File file;
        private String fileFileName;//上传文件的名字
        private String fileContentType;//上传文件的格式
        
        
        public File getFile() {
            return file;
        }
    
    
    
        public String getFileFileName() {
            return fileFileName;
        }
    
    
    
        public void setFileFileName(String fileFileName) {
            this.fileFileName = fileFileName;
        }
    
    
    
        public String getFileContentType() {
            return fileContentType;
        }
    
    
    
        public void setFileContentType(String fileContentType) {
            this.fileContentType = fileContentType;
        }
    
    
    
        public void setFile(File file) {
            this.file = file;
        }
    
    
    
        public String input(){
            
            return SUCCESS;
        }
        public String add() throws IOException{
            //为了防止上传文件重名,在文件前面加上当前时间
            long l=System.currentTimeMillis();
            Date date=new Date(l);
            SimpleDateFormat sdf= new SimpleDateFormat("yyyyMMddhhmmssSSS");//精确到毫秒
            String pre=sdf.format(date);
            String fileName = pre+fileFileName;
            File destFile = new File("d:\"+fileName);//放到哪里的路径+文件名
            FileUtils.copyFile(file, destFile);
            
            return SUCCESS;
        }
    
    }

    上传完成

    *************************************************************************************

    多个文件同时上传,Action类里面三个成员定义成数组,用数组来接收

    package com.itnba.maya.controller;
    
    import java.io.File;
    import java.io.IOException;
    
    import org.apache.commons.io.FileUtils;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class ShangchuanduoAction extends ActionSupport {
        private File[] file;
        private String[] fileFileName;
        private String[] fileContentType;
        public File[] getFile() {
            return file;
        }
        public void setFile(File[] file) {
            this.file = file;
        }
        public String[] getFileFileName() {
            return fileFileName;
        }
        public void setFileFileName(String[] fileFileName) {
            this.fileFileName = fileFileName;
        }
        public String[] getFileContentType() {
            return fileContentType;
        }
        public void setFileContentType(String[] fileContentType) {
            this.fileContentType = fileContentType;
        }
        public String input(){
            
            return SUCCESS;
        }
        public String add() throws IOException{
            //遍历数组
            for(int i=0;i<file.length;i++){
                File item= file[i]; //取出每个File
                if(item!=null){
                    File temp = new File("d:\"+fileFileName[i]);//去出每个的fileFileName
                    FileUtils.copyFile(item, temp);
                }
            }
            
            return SUCCESS;
        }
    
    }

    jap页面:

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    <h1>多文件上传</h1>
    <form action="Shangchuanduo_add" method="post" enctype="multipart/form-data">
    
    附件1:<input type="file" name="file"><br>
    附件2:<input type="file" name="file"><br>
    附件3:<input type="file" name="file"><br>
    附件4:<input type="file" name="file"><br>
    附件5:<input type="file" name="file"><br><br>
    <input type="submit" value="submit" >
    </form>
    
    </body>
    </html>

    上传成功

  • 相关阅读:
    C# GridView点击某列打开新浏览器窗口
    大白话系列之C#委托与事件讲解(二)
    大白话系列之C#委托与事件讲解(一)
    Razor语法大全
    Expression<Func<T,TResult>>和Func<T,TResult>
    C#委托的介绍(delegate、Action、Func、predicate)
    Android--样式经验
    Android--onSaveInstanceState()保存数据
    Android--ActivityLiving生命周期
    android--快捷键
  • 原文地址:https://www.cnblogs.com/hq233/p/6589419.html
Copyright © 2020-2023  润新知