博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts中文件上传的一些规则...
阅读量:6929 次
发布时间:2019-06-27

本文共 1597 字,大约阅读时间需要 5 分钟。

1、action中定义规范

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

例:jsp:

  
  

  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中定义的属性没有关系,默认2MBallowedTypes (可选) - 以逗号分割的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;  //保存到数据库中的文件名

 

转载于:https://www.cnblogs.com/Crysta1/p/6202533.html

你可能感兴趣的文章
模仿也是提高,纯css小技巧实现头部进度条
查看>>
js 改变只读属性的值
查看>>
nodejs vue SyntaxError:Block-scoped declarations (let,const,function,class) not yet supported
查看>>
PHP JQUERY JSON 实现瀑布流
查看>>
英雄所见略同——每个人都有的一套价值体系观念
查看>>
oracle学习5
查看>>
Demo学习: Dialogs Anonymous Callback
查看>>
Android使用GestureDetector实现手势滑动效果
查看>>
Java设计原则之里氏替换原则
查看>>
智销功能_基本项目搭建
查看>>
并发编程之 Fork-Join 分而治之框架
查看>>
Spring @Import注解 —— 导入资源
查看>>
jquery 事件委托(利用冒泡)
查看>>
javascript数组去重算法-----4(另一种写法)
查看>>
mongodb启动关闭;
查看>>
MYSQL错误:You can't specify target table for update in FROM clause
查看>>
Java-输入输出流
查看>>
'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique
查看>>
Java知多少(87)选择框和单选按钮(转)
查看>>
股票作手回忆录Digest(转)
查看>>