Java前端上傳圖片到後臺
阿新 • • 發佈:2019-02-19
使用通用的SSM框架,maven構建;
簡單記錄一下前端檔案上傳到後臺的過程,免得到處找;
spring-mvc.xml加入配置,這裡還可以加入檔案的編碼格式defaultEncoding屬性配置;
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="2000000" /><!-- 允許上傳的最大檔案大小 --> <property name="maxInMemorySize" value="4000000" /><!-- 允許寫到記憶體中的最大值 --> </bean>
此主要注意的是,記得在pom.xml檔案加入commons-fileupload的jar包依賴,SpringMVC實現檔案上傳依賴commons-fileupload.jar,否則執行時會報java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency>
**Controller.java程式碼加入mapping對映:
@RequestMapping(value = "/uploadFile") public JSONMessage uploadFile(MultipartFile file) throws Exception { if (file != null && file.getName() != null && !file.isEmpty()) { byte[] bytes = file.getBytes(); //位元組流操作,寫入檔案等等 return JSONMessage.success(); } else { return JSONMessage.failure("上傳檔案為空!"); } }
簡單說明下:JSONMessage是自己封裝的一個類,繼承自com.alibaba.fastjson.JSONObject,用於格式化返回介面資料;
注意這裡的key要與uploadFile(MultipartFile file)方法中的file變數命名一致;
多檔案上傳:
@RequestMapping(value = "/uploadFiles")
public JSONMessage uploadFiles(@RequestParam("files") MultipartFile[] files) throws Exception {
//判斷file陣列不能為空並且長度大於0
if(files!=null&&files.length>0){
//迴圈獲取file陣列中得檔案
for(int i = 0;i<files.length;i++){
MultipartFile file = files[i];
//儲存檔案
System.out.println(file.getName()+":"+file.getSize());
}
}
return JSONMessage.success();
}