SpringMVC 上傳圖片保存到服務器 同時更改圖片名稱保存至數據庫

jopen 10年前發布 | 113K 次閱讀 SpringMVC Spring MVC Web框架

在項目中涉及圖片上傳的時候 我們往往不會把圖片直接以二進制的方式存進數據庫,往往是把上傳的圖片保存在服務器中 數據庫只存更改后的圖片名稱。如果圖片量過多的話 還可以在開一臺圖片服務器這里可以提高用戶的體驗

    /**

 * 
 * 功能描述:
 * 
 * @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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!