zoukankan      html  css  js  c++  java
  • struts2 文件上传

    struts框架上传文件,需要的两个包:commons-fileupload-1.3.2.jar  、commons-io-2.2.jar

    上传文件,界面需要一个input标签  <input type="file" name="file">

    form表单中除了action method 之外,还需要一个  enctype="multipart/form-data"  属性  例如:<form action="File_select" method="post" enctype="multipart/form-data">

    另外需要一个Action ,

    三个成员变量:  1.File类型   2.String fileFileName属性名   3.String fileContentType属性名

    package com.maya.controller;
    
    import java.io.File;
    import java.io.IOException;
    import java.text.DecimalFormat;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Random;
    
    import org.apache.commons.io.FileUtils;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class FileAction extends ActionSupport {
    
        
        public String input(){
            return SUCCESS;
        }
        public String select() throws IOException{
            
            Random rand=new Random();
            int n=rand.nextInt(9999);
            DecimalFormat df=new DecimalFormat("0000");
            String sss=df.format(n);            //格式化随机数,如果不够四位数,用0补齐
            
            SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");        //格式化时间
            String str=sdf.format(Calendar.getInstance().getTime());
            
            File destFile=new File("d:\"+name+"_"+str+"_"+sss+"_"+fileFileName);
            FileUtils.copyFile(file, destFile);
            return SUCCESS;
        }
        
        
        
        private File file;                //文件上传需要定义一个file 类型的变量
        private String name;        
        private String fileFileName;        //上传时,文件的名称,遵循约定,用这个名称,上传文件时自动将文件名赋值到里面      file.getName()取到的值不是原文件的名
        private String fileContentType;        //文件类型 同上,约定为这个名称传文件时自动将文件类型赋值到里面(常用作限制文件上传格式)
        public String getFileContentType() {
            return fileContentType;
        }
        public void setFileContentType(String fileContentType) {
            this.fileContentType = fileContentType;
        }
        public String getFileFileName() {
            return fileFileName;
        }
        public void setFileFileName(String fileFileName) {
            this.fileFileName = fileFileName;
        }
        public File getFile() {
            return file;
        }
        public void setFile(File file) {
            this.file = file;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        
    }

    上传完成,则对应的位置会有相应的文件

    如果需要实现多文件上传,则File  换成 File数组即可,

    public String upload() throws IOException{
            
            for(int i=0;i<file.length;i++){
                File item = file[i];
                if(item != null){
                    File temp = new File("d:\"+fileFileName[i]);
                    FileUtils.copyFile(item, temp);
                }
            }
            
            return SUCCESS;
        }
  • 相关阅读:
    第08讲树
    第11讲简单算法
    【ZOJ1004】Anagrams by Stack
    【ZOJ1649】Rescue
    第10讲并查集
    网站建设与网页制作课件
    获取鼠标的坐标
    asp.net页面的默认回车事件
    NeatUpload的安装使用
    Page methods 执行顺序
  • 原文地址:https://www.cnblogs.com/zhaotiancheng/p/6589266.html
Copyright © 2011-2022 走看看