SpringMVC 上傳圖片保存到服務器 同時更改圖片名稱保存至數據庫
在項目中涉及圖片上傳的時候 我們往往不會把圖片直接以二進制的方式存進數據庫,往往是把上傳的圖片保存在服務器中 數據庫只存更改后的圖片名稱。如果圖片量過多的話 還可以在開一臺圖片服務器這里可以提高用戶的體驗 /**
*
* 功能描述:
*
* @author :xiaoyu 創建日期 :2014年2月1日 下午7:37:45
*
* @param filedata
* 上傳照片文件
* @param driver
*
* @param model
* Model
* @return
*
* 修改歷史 :(修改人,修改時間,修改原因/內容)
*/
@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";
}</pre><pre class="brush:java; toolbar: true; auto-links: false;">這是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/</pre></span>來自:http://my.oschina.net/pingdy/blog/199592
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!