ssm實現圖片上傳

在使用ssm完成先後端對接時,總免不了前臺傳過來的文件問題,而html中的<input>框直接使用時,每每會獲取不到路徑,今天在完成圖片上傳後的來作個總結html

 

首先,前臺頁面java

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8" />
 5         <title>圖片上傳</title>
 6     </head>
 7     <body>
 8         <h2>圖片上傳</h2>
 9     <form action="save/saveImg" method="post" enctype="multipart/form-data">
10         圖片:<input type="file"  name="upload"/><br/>
11         <input type="submit" value="提交"/>
12     </form>
13     </body>
14 </html>

 

 

配置圖片解析web

 

1 <!-- 配置文件上傳視圖解析器 -->
2     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
3         <property name="maxUploadSize" value="10485760"></property>
4         <property name="defaultEncoding" value="utf-8"></property>
5     </bean>

其中 maxUploadSize 是限制上傳的圖片最大字節  defaultEncoding是設定上傳圖片編碼spring

service接口數據庫

1 package com.sp.service;
2 
3 import org.springframework.web.multipart.MultipartFile;
4 
5 public interface FileService {
6 
7     void upLoadFile(MultipartFile upload);
8 }

 

實現類後端

 1 package com.sp.serviceImpl;
 2 
 3 import java.io.File;
 4 import java.io.IOException;
 5 
 6 import org.springframework.stereotype.Service;
 7 import org.springframework.web.multipart.MultipartFile;
 8 
 9 import com.sp.service.FileService;
10 
11 @Service
12 public class FileServiceImpl implements FileService {
13 
14     private String filePath="D:/img/"; //定義上傳文件的存放位置
15     @Override
16     public void upLoadFile(MultipartFile upload) {
17         
18         String fileName = upload.getOriginalFilename();  //獲取上傳文件的名字
19         //判斷文件夾是否存在,不存在則建立
20         File file=new File(filePath); 
21         
22         if(!file.exists()){
23             file.mkdirs();
24         }
25         
26         String newFilePath=filePath+fileName; //新文件的路徑
27         
28         try {
29             upload.transferTo(new File(newFilePath));  //將傳來的文件寫入新建的文件
30             
31         } catch (IllegalStateException | IOException e) {
32             e.printStackTrace();
33         }
34 
35     }
36 
37 }

 

控制層app

 1 package com.sp.controller;
 2 
 3 import org.springframework.beans.factory.annotation.Autowired;
 4 import org.springframework.stereotype.Controller;
 5 import org.springframework.web.bind.annotation.RequestMapping;
 6 import org.springframework.web.bind.annotation.ResponseBody;
 7 import org.springframework.web.multipart.MultipartFile;
 8 
 9 import com.sp.service.FileService;
10 
11 @Controller
12 @RequestMapping("/save")
13 public class FileController {
14 
15     @Autowired
16     private FileService fileService;
17     
18     @RequestMapping("/saveImg")
19     @ResponseBody
20     public String saveImg(MultipartFile upload){
21         fileService.upLoadFile(upload);
22         return "ok";
23     }
24 }

 

效果演示ide

選擇圖片post

提交後看個人d盤目錄編碼

 

 

本案例只是簡單的演示,後臺能夠對上傳的圖片名稱或者大小或者有無尺寸進行判斷,從而能夠避免傳入無效數據,同時亦能夠將本身所保存的路徑進行相應的修改後存入數據庫,便於之後數據的回顯.

相關文章
相關標籤/搜索