1. 程式人生 > >SSM框架實現圖片上傳並查詢資料庫中的圖片(多圖片上傳請看下篇部落格)

SSM框架實現圖片上傳並查詢資料庫中的圖片(多圖片上傳請看下篇部落格)

第一步:首先要在我們的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";
	}

如果想看多圖片上傳,可以去看一下我下篇部落格

如有不懂可以評論,我會回覆的。