SpringMVC 上传图片保存到服务器 同时更改图片名称保存至数据库
@RequestMapping(value = "/save.do", method = RequestMethod.POST)
public String saveDriver(
@RequestParam(value = "photo", required = false) MultipartFile filedata,
Driver driver, Model model) {
trimDriver(driver);
model.addAttribute(driver);
// 判断图片大小是否大于2M
if (filedata.getSize() > Constant.UPLOAD_PHOTO_SIZE) {
model.addAttribute("isSaveSuccess", false);
IMessage msg = new Message("MSG_YS030_002", MsgTypeEnum.INFO, null);
model.addAttribute("msg", msg.toString());
return "ys030/YS033";
}
// 判断司机是否已存在
if (this.ys030Service.isExist(driver.getOrganizationId(),
driver.getIdCardNumber(), null)) {
model.addAttribute("isSaveSuccess", false);
IMessage msg = new Message("ERR_YS030_003", MsgTypeEnum.ERROR, null);
model.addAttribute("msg", msg.toString());
return "ys030/YS033";
}
// 保存相对路径到数据库 图片写入服务器
if (filedata != null && !filedata.isEmpty()) {
// 获取图片的文件名
String fileName = filedata.getOriginalFilename();
// 获取图片的扩展名
String extensionName = fileName
.substring(fileName.lastIndexOf(".") + 1);
// 新的图片文件名 = 获取时间戳+"."图片扩展名
String newFileName = String.valueOf(System.currentTimeMillis())
+ "." + extensionName;
try {
driver.setPicUrl(newFileName);
saveFile(newFileName, filedata);
} catch (Exception e) {
log.error("上传图片失败.", e);
model.addAttribute("isSaveSuccess", false);
IMessage msg = new Message("MSG_YS030_001", MsgTypeEnum.INFO,
null);
model.addAttribute("msg", msg.toString());
return "ys030/YS033";
}
}
this.ys030Service.save(driver);
model.addAttribute(driver);
model.addAttribute("isSaveSuccess", true);
return "ys030/YS033";
}
private void saveFile(String newFileName, MultipartFile filedata) {
// TODO Auto-generated method stub
// 根据配置文件获取服务器图片存放路径
String picDir = "";
try {
//这里封装了读取配置文件的方法 配置文件中有图片的存放地址和获取地址
Properties properties = PropertiesUtil
.getProperties("configure/driverpicurl.properties");
picDir = properties.getProperty("savePicUrl");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String saveFilePath = picDir;
/* 构建文件目录 */
File fileDir = new File(saveFilePath);
if (!fileDir.exists()) {
fileDir.mkdirs();
}
try {
FileOutputStream out = new FileOutputStream(saveFilePath + "\\"
+ newFileName);
// 写入文件
out.write(filedata.getBytes());
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private void deleteFile(String oldPicName) {
// TODO Auto-generated method stub
String picDir = "";
try {
Properties properties = PropertiesUtil
.getProperties("configure/driverpicurl.properties");
picDir = properties.getProperty("savePicUrl");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/* 构建文件目录 */
File fileDir = new File(picDir+"/"+oldPicName);
if (fileDir.exists()) {
//把修改之前的图片删除 以免太多没用的图片占据空间
fileDir.delete();
}
}
这是properties 文件
#============================================================================
#savePicUrl=D:/tomcat/apache-tomcat-7.0.39/webapps/driverPic 服务器图片存放路径(服务器绝对路径与工程同目录)
#getPicUrl=http://xxx.xxx.xx.xxx:8080/driverPic/ 服务器图片获取地址
#============================================================================
savePicUrl=D:/tomcat/apache-tomcat-7.0.39/webapps/driverPic
getPicUrl=http://xxx.xxx.xx.xxx:8080/driverPic/
SpringMVC 上传图片保存到服务器 同时更改图片名称保存至数据库的更多相关文章
- django上传图片简单验证以及自动修改图片名称
django实现文件(图片)上传之后自动修改名称以及页面上传图片时的各种提醒: 1.先在你项目中添加一个文件夹如:system 在文件夹下添加__init__.py 和storage.py文件,并在s ...
- 点滴积累【C#】---C#实现上传word将路径保存到数据库,文件保存到服务器。并且按照名称读取服务器的word
效果: 1. . . 数据库: 思路: 上传:先获取word物理地址,然后根据文件的类型判断,然后再保存到相应的文件夹下,再把路径插入到数据库中. 读取:首先根据输入的文件名字在数据库中查找出来文件的 ...
- PHP将图片转base64编码以及base64图片转换为图片并保存代码
图片转base64编码 /*图片转换为 base64格式编码*/ $img = 'uploads/01.png'; $base64_img = base64EncodeImage($img); ech ...
- PHP的图片转base64,base64图片转换为图片并保存代码
打卡记录 1. 图片转base64代码 /*图片转换为 base64格式编码*/ $img = 'images/avatar.jpg'; $base64_img = base64EncodeImage ...
- summernote图片上传功能保存到服务器指定文件夹+php代码+java方法
1.summernote富文本编辑器 summernote是一款基于bootstrap的富文本编辑器,是一款十分好用的文本编辑器,还附带有图片和文件上传功能. 那么在我们网站中想吧这个图片上传到服务器 ...
- SpringMVC上传图片总结(1)---常规方法进行图片上传,使用了MultipartFile、MultipartHttpServletRequest
原文地址:https://blog.csdn.net/chenchunlin526/article/details/70945877 SpringMVC上传图片总结(1)---常规方法进行图片上传,使 ...
- Wcf for wp8 上传图片到服务器,将图片名字插入数据库字段(五)
环境:.NET Framework 3.5 服务: IIS EXpress托管 WCF服务程序 配置:Web.config <!--<connectionStrings> <a ...
- 下载远程(第三方服务器)文件、图片,保存到本地(服务器)的方法、保存抓取远程文件、图片 将图片的二进制字节字符串在HTML页面以图片形式输出 asp.net 文件 操作方法
下载远程(第三方服务器)文件.图片,保存到本地(服务器)的方法.保存抓取远程文件.图片 将一台服务器的文件.图片,保存(下载)到另外一台服务器进行保存的方法: 1 #region 图片下载 2 3 ...
- php实现调用微信上传照片然后保存至服务器与数据库
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> <s ...
随机推荐
- Spring-boot官方案例分析之data-jpa
Spring-boot官方案例分析之data-jpa package sample.data.jpa; import org.junit.Before; import org.junit.Test; ...
- Navicat for Mysql修改MySQL数据库密码,图文详解
1.创建一个连接 2.打开连接 3.按照图示123依次点击 4.输入新密码 5.查看实现修改密码功能的SQL语句(此步骤非必须) 6.最关键的一步:点击保存 7.出现如下现象,恭喜你,修改密码成功! ...
- ES6 async await
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【TOJ 1545】Hurdles of 110m(动态规划)
描述 In the year 2008, the 29th Olympic Games will be held in Beijing. This will signify the prosperit ...
- Linux进程间通信---管道和有名管道
一.管道 管道:管道是一种半双工的通信方式,数据只能单方向流动,而且只能在具有亲缘关系的进程间使用,因为管道 传递数据的单向性,管道又称为半双工管道.进程的亲缘关系通常是指父子进程关系. 管道的特点决 ...
- poj 3177 Redundant Paths 求最少添加几条边成为双联通图: tarjan O(E)
/** problem: http://poj.org/problem?id=3177 tarjan blog: https://blog.csdn.net/reverie_mjp/article/d ...
- HTTP缓存初探
缓存的作用 用户访问一个web页面的频率远高于web页面更新的频率,因此多数时候用户从服务器获取的html.js.css以及图片等内容都是相同的,如果每次访问都从服务器获取这些静态内容即降低了页面加载 ...
- QQ群排名霸屏技术居然是这样简单
最近做了一些收费的QQ群,收多少钱,一块钱的入门费,也就是说进入我的QQ群必须要1块钱的会费. 我的QQ群主要是干嘛呢,放些电影,比如说市面上电影院,正在播放的,最新最热门的,火爆的一些电影. 先前呢 ...
- java 单例模式(singleton)
概念: 保证一个类仅有一个实例,并提供一个访问它的全局访问点. 要点: 1.某个类只有一个实例. 2.它必须自行创建这个示例. 3.必须自行向整个系统提供这个示例. 实现: 1.拥有一个私有的构造器. ...
- MyBatis的笔记
1.#{}和${}的区别是什么? #{}是预编译处理,${}是字符串替换. #{}是sql的参数占位符,${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替 ...