zoukankan      html  css  js  c++  java
  • Struts中文件上传的一些规则...

    1、action中定义规范

          如果jsp中file的name="xxx",那么后台action中的属性要做相应更改为
                          private File xxx;
                          private String xxxContentType;
                          private String xxxFileName;
            同时注意大小写一定要一致

    例:jsp:

    <form action="AttendanceAction_daoru.do" method="post" enctype="multipart/form-data">
      <input type="file" value="请选择" name="file"/>
      <input type="submit" value="导入"/>
    </form>

      action:

       private File file;  //注意,file并不是指前端jsp上传过来的图片文件本身,而是文件上传过来存放在临时文件夹下面的文件
        private String fileFileName;  //提交过来的file的名字
        private String fileContentType;
            
        get...
        set...

    2、获取上传文件的后缀名

    <1> 通过javascript校验来限制,这个比较简单,获取input的value然后截取扩展名进行判断即可 或者通过传入后台的fileFileName截取扩展名判断:

      

     String extName = "";//文件后缀名
    
     if (imageFileName.lastIndexOf(".") >= 0){   
           extName = imageFileName.substring(imageFileName.lastIndexOf("."));   
        } 

    <2>根据struts2自带的fileupload拦截器中提供的allowedTypes来进行限制,步骤如下:

    maximumSize (可选) - 这个拦截器允许的上传到action中的文件最大长度(以byte为单位). 注意这个参数和在webwork.properties中定义的属性没有关系,默认2MB
    allowedTypes (可选) - 以逗号分割的contentType类型列表(例如text/html),这些列表是这个拦截器允许的可以传到action

    3、上传的文件为确保Id的唯一性,需要修改文件名,如下:

        //生成随机文件名:当前年月日时分秒+五位随机数(为了在实际项目中防止文件同名而进行的处理)   
            int rannum = (int) (new Random().nextDouble() * (99999 - 10000 + 1)) + 10000; //获取随机数 
            SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); //时间格式化的格式 
            String nowTimeStr = sDateFormat.format(new Date()); //当前时间 
            String extName = "";//文件后缀名
            //获取拓展名 
            if (imageFileName.lastIndexOf(".") >= 0){   
                extName = imageFileName.substring(imageFileName.lastIndexOf("."));   
            } 
            imageFileName = nowTimeStr + rannum + extName;  //保存到数据库中的文件名
  • 相关阅读:
    centos mongodb
    CentOS YUM 安装 TOMCAT6
    Linux切换工作目录命令:cd
    CentOS中JAVA_HOME的环境变量设置
    用Navicat for MySQL 连接 CentOS 6.5
    CentOS上开启MySQL远程访问权限
    centos7下yum安装mysql
    long数值 转换为时间
    安卓开发_浅谈AsyncTask
    ScrollView与ListView的事件冲突
  • 原文地址:https://www.cnblogs.com/Crysta1/p/6202533.html
Copyright © 2011-2022 走看看