圖片上傳功能(EasyUI前台框架+SSM框架)


文件上傳步驟:

* 1.采用文件正確的接收方式(修改3處配置文件/接口類型等)

* 2.判斷是否為一個圖片,0表示無異常,1代表異常(jpg|gif|png)

* 3.判斷是不是一個“正經”的圖片,判斷是否有寬度和高度

* 4.編輯磁盤目錄,D:/jtphoto/images/yyyy/MM/dd/hh/mm

* 5.編輯相對路徑,url:image.jt.com/images/yyyy/MM/dd/hh/mm

* 6.保存文件

 

EasyUI前台請求:

//編輯器參數
kingEditorParams : {
    filePostName  : "uploadFile",
    uploadJson : '/pic/upload',
    dir : "image"
},

Controller:  

 1 package com.jt.manage.controller;
 2 
 3 import java.awt.image.BufferedImage;
 4 import java.io.File;
 5 import java.io.IOException;
 6 import java.text.SimpleDateFormat;
 7 import java.util.Date;
 8 
 9 import javax.imageio.ImageIO;
10 
11 import org.apache.log4j.Logger;
12 import org.springframework.stereotype.Controller;
13 import org.springframework.web.bind.annotation.RequestMapping;
14 import org.springframework.web.bind.annotation.ResponseBody;
15 import org.springframework.web.multipart.MultipartFile;
16 
17 import com.jt.common.vo.PicUploadResult;
18 
19 @Controller
20 public class FileUploadController {
21     
22     private static final Logger logger = Logger.getLogger(FileUploadController.class);
23     /**
24      * 文件上傳步驟
25      * 1.采用文件正確的接收方式(修改3處配置文件/接口類型等)
26      * 2.判斷是否為一個圖片,0表示無異常,1代表異常(jpg|gif|png)
27      * 3.判斷是不是一個“正經”的圖片,判斷是否有寬度和高度
28      * 4.編輯磁盤目錄,D:/jtphoto/images/yyyy/MM/dd/hh/mm
29      * 5.編輯相對路徑,url:image.jt.com/images/yyyy/MM/dd/hh/mm
30      * 6.保存文件
31      * @param uploadFile
32      * @return
33      */
34     
35     @RequestMapping("/pic/upload")
36     @ResponseBody
37     public PicUploadResult fileUpload(MultipartFile uploadFile){
38         
39         PicUploadResult picload = new PicUploadResult();
40         
41         //獲取圖片名
42         String fileName = uploadFile.getOriginalFilename();
43         
44         //截取圖片后綴
45         String suff = fileName.substring(fileName.lastIndexOf("."));
46         
47         //判斷是否是圖片
48         if(!(suff.matches(".(jpg||gif||png)"))){   //不是個圖片
49             picload.setError(1);
50             logger.error("~~~ 您上傳的不是個圖片");
51             return picload;
52         }
53         
54         //判斷上傳的圖片是不是個“正確”的圖片
55         try {
56             BufferedImage bufferedImage = ImageIO.read(uploadFile.getInputStream());
57             
58             //獲取圖片的寬高
59             int width = bufferedImage.getWidth();
60             int height = bufferedImage.getHeight();
61             picload.setWidth(width+"");
62             picload.setHeight(height+"");
63             
64             //編輯路徑
65             String localPath = "D:/jtphoto/images/";
66             String urlPath = "http://image.jt.com/images/";
67             String dataPath = new SimpleDateFormat("yyyy/mm/dd/hh/mm").format(new Date());
68             
69             //拼接路徑
70             localPath += dataPath+uploadFile.getOriginalFilename();
71             urlPath += dataPath+uploadFile.getOriginalFilename();
72             
73             File file = new File(localPath);
74             if(!file.exists()){
75                 //文件不存在時創建多個文件
76                 file.mkdirs();
77             }
78             
79             //將圖片寫入磁盤
80             uploadFile.transferTo(file);
81             picload.setUrl(urlPath);
82 
83             return picload;
84             
85         } catch (IOException e) {
86             e.printStackTrace();
87             picload.setError(1);
88             logger.error("~~~ 您上傳不是個正規的圖片");
89             return picload;
90         }
91 
92         
93     }
94     
95 }

PicUploadResult 對象:
 1 package com.jt.common.vo;
 2 
 3 public class PicUploadResult {
 4     private Integer error=0;        //圖片上傳錯誤不能拋出,拋出就無法進行jsp頁面回調,所以設置這個標識,0表示無異常,1代表異常
 5     private String url;                //瀏覽器能夠解析的具體頁面路徑。相對路徑: http//image.jt/img.jpg  本地路徑:存放圖片路徑   D:/jt-image/....
 6     private String width;
 7     private String height;
 8 
 9     public Integer getError() {
10         return error;
11     }
12 
13     public void setError(Integer error) {
14         this.error = error;
15     }
16 
17     public String getUrl() {
18         return url;
19     }
20 
21     public void setUrl(String url) {
22         this.url = url;
23     }
24 
25     public String getWidth() {
26         return width;
27     }
28 
29     public void setWidth(String width) {
30         this.width = width;
31     }
32 
33     public String getHeight() {
34         return height;
35     }
36 
37     public void setHeight(String height) {
38         this.height = height;
39     }
40     
41     
42 
43 }

 

 實現效果:

 

 

 注意: 開始上傳后開始並沒有回顯圖片,而是通過Nginx反向代理服務器技術來實現轉向,由

http://image.jt.com/images/2017/07/25/15/26/57  

轉向到 

D:/jtphoto/images/2017/07/25/15/26/574ed257Nebb74cec.jpg

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM