文件上传—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框架项目的搭建我相信你们已经搭 ...
随机推荐
- Java类的设计----方法的重写、覆盖
方法的重写.覆盖 在子类中可以根据需要对从父类中继承来的方法进行改造—覆盖方法(方法的重置.重写),在程序执行时,子类的方法将覆盖父类的方法. 覆盖方法必须和被覆盖方法具有相同的方法名称.参数列表和返 ...
- shell基础篇(九)函数
函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用1. Shell 函数的定义格式如下: ...
- Java编程基本概念
1.标识符 ①用于给变量.类和方法命名(类名首字母大写,变量和方法名首字母小写并遵循驼峰原则)②标识符的命名规范: ■标识符必须以字母.下划线和美元符$开头. ■标识符其他部分可以是字母.下划线.美元 ...
- Spring 工作流程简单介绍
Spring Web MVC 处理Http请求的大致过程: 一旦Http请求到来,DispatcherSevlet将负责将请求分发. DispatcherServlet可以认为是Spring提供的前端 ...
- .Net Core 使用EF Core方法
新建项目后,使用NuGet安装包: Install-Package Microsoft.EntityFrameworkCore Install-Package Microsoft.EntityFram ...
- mysql使用笔记(一)
一.安装 使用免安装的版本进行安装: 1. 解压到安装目录 2. 拷贝目录下的 my-default.ini 文件为 my.ini 文件 3. 修改my.ini 文件内容为 [client] port ...
- Angular基础---->AngularJS的使用(一)
AngularJS主要用于构建单页面的Web应用.它通过增加开发人员和常见Web应用开发任务之间的抽象级别,使构建交互式的现代Web应用变得更加简单.今天,我们就开始Angular环境的搭建和第一个实 ...
- devstack with neutron 参考文献
http://networkstatic.net/installing-openstack-ml2-neutron-plugin-devstack-fedora/ https://wiki.opens ...
- JavaWeb温习之HttpServletResponse对象
以下内容均根据"方立勋JavaWeb视频教程"进行总结 1. HttpServletResponse常见应用——设置响应头控制浏览器的行为 1.1 设置http响应头控制浏览器禁止 ...
- apt-get install的默认安装路径
apt-get 命令 sudo apt-get update sudo apt-get install tree sudo apt-get -y install tree //跳过系统提示,直接安装. ...