spring 文件上傳
阿新 • • 發佈:2018-06-21
class smu The servlet loader ctu pan 文件大小 except
package springmvc; public class TestOne { /** * * Springmvc配置的替代方案 * 處理文件上傳 * 控制器中處理異常 * 使用flash * * 1.springmvc的加載 * 代碼方式創建Servlet filter listener, * 實現webapplicationinitializer接口,創建實例並映射到路徑上 * * web.xml中加載servlet * * DispatherServlet 和contextLoaderListener * * * contextConfigLocation * 加載bean到到容器,spring和springmvc分別可以加載一個文件 * * * * 2.處理multipart形式的數據 * 文件上傳,處理圖片等二進制數據, * 可以使用multipart格式的數據,會將數據拆分多個部分 * * 配置multipart解析器 * * 兩種方式: * 1)代碼方式註冊servlet setMultipartConfig() * 2)在web.xml中配置 * * 必須指定一個路徑,上傳的文件將會寫入該目錄中。 * * 兩種servlet * CommonsMultipartResolver * StandardServletMultiResolver 此種方式能設置文件大小,上限 * * 3.處理multipart請求 * * 控制器上添加註解 @RequestPart * 表單上 enctype 設置為 multipart/form-data,每個輸入域對應一個part * * 表單input 新增了一個file類型,只接受jgpe、png、gif圖片, * 控制器端profilepicture接收,數組接收 * * public void method(){ * @RequestPart("profilePicture") byte[] profilePicture * } * * 4.MultipartFile 接口處理文件 * * AWS憑證 保存圖片 * * 5.javax.servlet.http.Part接口 * * public void method(){ * @RequestPart("profilePicture") Part part * } * * * 6.異常處理 * @ResponseStatus * * * @ExceptionHandler * 7.控制器通知類 * * 建立一個控制器帶@ControllerAdvice,會掃描所有的控制器類 * * 可以在這個列中定義方法處理所有的異常 * * @ControllerAdvice //定義控制器類 * public Class ControllerAd{ * * @ExceptionHandler(DuplicateException.class) * public String duplicSpitterExcetion{ //定義異常處理方法 * return "error/duplication"; * } * * * 現在無論哪個控制拋出DuplicateException異常,都會執行這個方法duplicSpitterExcetion * * } * **/ }
spring 文件上傳