文件上传—SSM框架文件上传
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<form action="index/newadd" method="post" enctype="multipart/form-data">
<table class="form">
<tr>
<td class="field">证件照:</td>
<td><input type="file" id="wkpicpath" class="text" name="attachs" /> </td>
<td class="field"id="hderrorinfo" style="margin-left:0px">${sessionScope.uploadwkError}</td>
</tr>
<tr>
<td class="field">头像:</td>
<td><input type="file" id="hdpicpath" class="text" name="attachs" /></td>
<td class="field"id="hderrorinfo" style="margin-left:0px">${sessionScope.uploadhdError}</td>
</tr>
<tr>
<td></td>
<td><label class="ui-blue"><input type="submit" name="submit" value="添加" /></label></td>
</tr>
</table>
</form>
/*
* 管理员新增用户
*/
@RequestMapping(value="/newadd",method=RequestMethod.POST)
public String doAddUser(HttpSession session,HttpServletRequest request,
@RequestParam(value="attachs",required=false)MultipartFile[] attachs,
User user){ //定义两个上传文件的路径
String wkpicpath = null;
String hdpicpath = null;
String errorinfo = null;
//定义上传过程管理标记
boolean flag = true;
//定义文件保存的位置
String path = request.getSession().getServletContext().getRealPath("statics"+File.separator+"uploadfiles");
//循环读取文件信息
for(int i=0;i<attachs.length;i++){
MultipartFile attach = attachs[i];
//判断文件是否为空
if(!attach.isEmpty()){
//判断是第几个文件
if(i==0){
errorinfo = "uploadwkError";
}else if(i==1){
errorinfo = "uploadhdError";
}
//获取源文件名
String oldName= attach.getOriginalFilename();
//获取源文件名后缀
String prefixName = FilenameUtils.getExtension(oldName); int fileSize = 500000;
//判断上传大小不得超过500K
if(attach.getSize()>fileSize){
session.setAttribute(errorinfo, "上传文件不得大于500k");
flag = false;
}else if(prefixName.equalsIgnoreCase("jpg")
|| prefixName.equalsIgnoreCase("png")
|| prefixName.equalsIgnoreCase("jpeg")
|| prefixName.equalsIgnoreCase("pneg")){
//判断上传格式
//定义新的文件名,当前系统时间+随机数+固定后缀,
//RandomUtils需要引入jar文件commons-lang.jar
//String fileName = System.currentTimeMillis()+RandomUtils.nextInt(1000000)+"personer.jpg";
String fileName = System.currentTimeMillis()+"personer.jpg";
//创建新的文件,用于接收用户上传的文件流
File targetFile = new File(path, fileName);
if(!targetFile.exists()){
targetFile.mkdirs();
} //将上传的文件保存
try {
attach.transferTo(targetFile);
} catch (Exception e) {
e.printStackTrace();
session.setAttribute(errorinfo,"上传失败!");
flag = false;
} //更新上传的路径
if(i==0){
wkpicpath = path + File.separator + fileName;
}else if(i==1){
hdpicpath = path + File.separator + fileName;
}
}else{
session.setAttribute(errorinfo,"图片格式不正确!");
flag = false;
}
}
} //准备User
if(flag){
user.setWkpicpath(wkpicpath);
user.setHdpicpath(hdpicpath);
user.setUserrole(1);
//插入数据库
if(userService.findAddUser(user)>0){
return "redirect:/index/user";
}
}
return "manager/user-add.jsp";
}
文件上传—SSM框架文件上传的更多相关文章
- SSH,SSM框架文件上传
一.了解文件上传 1.1 什么是文件上传 将本地文件通过流的形式写到服务器上 1.2 文件上传的技术 JspSmartUpload: 其组件是应用jsp进行B/S程序开发过 ...
- ssm框架文件上传
有两种方法 导包和上传配置自己搞: 第一种: 上传单个文件: @RequestMapping("/addfile1") public String addfile(@Request ...
- 文件上传—SSH框架文件上传
1.准备上传的api组件 <dependency> <groupId>commons-io</groupId> <artifactId>commons- ...
- 使用IntelliJ IDEA创建Maven聚合工程、创建resources文件夹、ssm框架整合、项目运行一体化
一.创建一个空的项目作为存放整个项目的路径 1.选择 File——>new——>Project ——>Empty Project 2.WorkspaceforTest为项目存放文件夹 ...
- 【转载】使用IntelliJ IDEA创建Maven聚合工程、创建resources文件夹、ssm框架整合、项目运行一体化
一.创建一个空的项目作为存放整个项目的路径 1.选择 File——>new——>Project ——>Empty Project 2.WorkspaceforTest为项目存放文件夹 ...
- ssm框架搭建(上)
前言 之前也说过,工作做的开发都是基于公司现有的框架,心里很没底.所以一直想自己能够搭建出ssm框架.经过多次尝试,终于成功了.这边文章将从两个方面进行,一是框架搭建,二是简单的增删查改. 正文 1. ...
- SSM框架文件远程服务器下载
1.首先你必须要建立连接 获取URL的输入流 2.之后就是文件读取和写入了 3.还有就是设置响应头,响应码等 代码 @RequestMapping("/fileDownLoad") ...
- ssm框架文件配置
1 简介 Spring MVC (web level),采取 MVC 架构,意图取代麻烦的 Servlet 写法,简化 web 层 MyBatis (dao level),意图取代 jdbc 操作数据 ...
- springmvc文件上传下载简单实现案例(ssm框架使用)
springmvc文件上传下载实现起来非常简单,此springmvc上传下载案例适合已经搭建好的ssm框架(spring+springmvc+mybatis)使用,ssm框架项目的搭建我相信你们已经搭 ...
随机推荐
- X-code 描述文件的位置
不管是真机测试还是打包的过程中,都需要描述文件.在桌面上,按快捷键“commd+Shift+G”,就会显示一个要填的文件路径,如下图: 找到描述文件的路径: ~/Library/MobileDevic ...
- TestNG入门教程
阅读目录 TestNG介绍 在Eclipse中在线安装TestNG 在Eclipse中离线安装Testng TestNG最简单的测试 TestNG的基本注解 TestNG中如何执行测试 使用testt ...
- js里面函数的内部属性
1.arguments用來存放传输参数的集合,可以被调用多次,每次数組都不一样,增强了函数的强壮性 实例: function calc() { var sum = 0; /*参数为一个时候*/ if ...
- 【PHP】 判断是否微信内置浏览器
PHP 判断是手机端还是PC端 function isMobile() { // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset($_SERVER['HTTP_X_WA ...
- LeetCode——Maximum Subarray
Description: Find the contiguous subarray within an array (containing at least one number) which has ...
- ios UIImage图片拉伸 resizableImageWithCapInsets:
常见的按钮添加和背景设置如下: UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(80, 130, 160, 44)];[bu ...
- PMP 笔记
项目: 为创造独特的产品.服务或结果而进行的临时性工作. 项目特征: 独特性:Unique.临时性:Temporary.渐进明细. 渐进明细:预算越来越精细.比如三峡工程中,预算从10亿级的误差到1亿 ...
- INSERT高级应用
INSERT INTO departments VALUES (departments_seq.nextval, 'Entertainment', 162, 1400); INSERT INTO em ...
- CentOS 目录结构详解
linux 目录结构 linux目录树 /: 根目录,一般根目录下只存放目录,不要存放文件,/etc./bin./dev./lib./sbin应该和根目录放置在一个分区中/bin:/usr/bin: ...
- Oracle HA 之 OGG部署流水
1.GG组件及其功能简介: manager进程:总管其他所以进程及处理相应GGSCI命令. capture进程:从源端的联机日志文件或归档日志文件抓取commit的信息. sourc ...