文件上传—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框架项目的搭建我相信你们已经搭 ...
随机推荐
- C语言中的文本流与二进制流的区别
近期看到了文本流和二进制流的区别,书上讲的比较含糊,理解不透彻,于是细细琢磨了下,把心得跟大家分享一下: 一.首先回答,什么是文件,流 一个文件通常就是磁盘上的一段命名的存储区.比如 stdio.h ...
- <linux系统c语言生成.so文件,生成64位可执行文件,在64位系统中运行32位的可执行文件>
1.linux 系统c语言生成.o文件,---->gcc -m64 -c -fPIC test.c -o test.o2.linux 系统c语言生成.so文件,----->gcc -sha ...
- jquery ajax返回html乱码解决
情景: index.html 使用如下代码访问另外一个html片段 1 2 3 4 5 6 7 8 9 10 11 12 13 function rewritedata(id){ var uu ...
- PHP读取远程文件的三种方法
file_get_contents <?php$url = http://www.xxx.com/;$contents = file_get_contents($url);//如果出现中文乱码使 ...
- C++11新特性之六——元编程
C++11新特性之六——元编程
- PyQt4消息窗口
默认情况下,如果我们单击了窗口标题栏上的X标记,窗口就会被关闭.但是有些时候我们想要改变这一默认行为.比如,我们正在编辑的文件内容发生了变化,这时若单击X标记关闭窗口,编辑器就应当但出确认窗口. #! ...
- android基础---->NDK的使用
NDK的发布,使“Java+C”的开发方式终于转正,成为官方支持的开发方式.NDK将是Android平台支持C开发的开端,今天我们开始ndk的学习. NDK的简要说明 ndk是什么: The Nati ...
- LeetCode——Missing Number
Description: Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one t ...
- LeetCode——Summary Ranges
Description: Given a sorted integer array without duplicates, return the summary of its ranges. For ...
- sencha touch 入门系列 (八)sencha touch类系统讲解(下)
接着上一讲,我们通过一组代码来讲解一下st的类的一些属性: Ext.define("MyConfig",{ config:{ website:"http://127.0. ...