SSM框架實現圖片上傳並查詢資料庫中的圖片(多圖片上傳請看下篇部落格)
阿新 • • 發佈:2019-02-01
第一步:首先要在我們的springMVC.xml檔案中新增上傳檔案解析器
<!-- 定義檔案上傳解析器 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 設定預設編碼 --> <property name="defaultEncoding" value="UTF-8"></property> <!-- 設定檔案上傳的最大值 --> <property name="maxUploadSize" value="99999999"></property> </bean>
第二步:然後我們要在WebRoot目錄下建立一個“upload”資料夾
這個名字你們可以隨便取,呼叫的時候就呼叫你取的這個名字就行了
第三步:上傳圖片的jsp頁面中的程式碼:
<form action="${pageContext.request.contextPath}/addImg" method="post" enctype="multipart/form-data"> <table > <tr> <td>上傳圖片:</td> <td><input type="file" name="file" /></td><!--這個name=“file”並不是資料庫的欄位名哦--> </tr> </table> <button type="submit" >儲存</button> </form>
顯示圖片的jsp頁面中的程式碼:
<c:forEach var="b" items="${imgList}">
<img src="http://localhost:8080/你的專案名/${b.img}">
</c:forEach>
第四步:上傳圖片的Controller類的程式碼(這裡面的“upload”就是我們建立的資料夾的名稱):
@Controller public class ImgController { @Autowired private ImgService imgService; @RequestMapping("/addImg") public String addImg(HttpServletRequest request, Img img, @RequestParam(value="file")MultipartFile pictureFile) throws Exception { //這個RequestParam(value="file")的是我們在jsp的name=“file” // 使用UUID給圖片重新命名,並去掉四個“-” String name = UUID.randomUUID().toString().replaceAll("-", ""); // 獲取檔案的副檔名 String ext = FilenameUtils.getExtension(pictureFile .getOriginalFilename()); // 設定圖片上傳路徑 String url = request.getSession().getServletContext() .getRealPath("/upload"); System.out.println(url); // 以絕對路徑儲存重名命後的圖片 pictureFile.transferTo(new File(url + "/" + name + "." + ext)); // 把圖片儲存路徑儲存到資料庫 img.setImg("upload/" + name + "." + ext); imgService.addImg(img); // 重定向到查詢所有使用者的Controller,測試圖片回顯 return "redirect:/imgList"; }
查詢圖片的Controller類的程式碼:
@RequestMapping(value = "/imgList")
public String imgList(Model model) throws Exception {
List<Img> imgList= imgService.imgList();
model.addAttribute("imgList", imgList);
return "allImg";
}
如果想看多圖片上傳,可以去看一下我下篇部落格
如有不懂可以評論,我會回覆的。