layui上傳多檔案後臺程式碼總結(java)
阿新 • • 發佈:2018-12-26
本文對接上篇文章《 layui.js實現多檔案上傳前端html寫法總結》,後臺和前端html的url的對應及相關引數可參考此文章
此功能實現所用的框架為springboot
程式碼如下:
@ResponseBody @RequestMapping({"/demp/model/uploadAreaFile.do"}) public JSONObject uploadAreaFile(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request) throws Exception { String schoolId = request.getParameter("schoolId");//獲取引數 Map<String,Object> result = new HashMap<String, Object>(); try{ //上傳檔案方法,這裡需要改成自己專案裡上傳檔案方法 String filePath = FileUploadUtil.uploadFile(file, Const.MODEL_FILE_TYPE); result.put("code", 0); result.put("msg", "上傳成功"); result.put("filePath", filePath); return JSONObject.fromObject(result); }catch(Exception e){ result.put("code", -1); result.put("msg", "上傳失敗"); result.put("filePath", ""); return JSONObject.fromObject(result); } }
最開始實現這個功能遇到幾個問題,現總結下來:
1.程式不會到後臺,頁面一直報介面上報異常,查了下主要是兩個原因:
(1)此處的返回值要是json格式的,像本文中返回JSONObject 或 Map<String,Object>都是可以的,此處要注意,返回值不能是json格式的字串。
(2)按照(1)改了之後發現還是不可以,後來查資料發現,方法前要引入註解@ResponseBody
按照上面2個步驟改了之後,發現程式成功進入後臺
@ResponseBody的原理可參考《淺析@ResponseBody註解作用和原理》
2.關於大於1M的檔案後臺介面報異常不是因為layui控制元件的問題,應該是對應專案框架的原因,因為本人用的框架為springboot,查詢資料後在專案對應的application.properties檔案里加下面兩行程式碼就可以了
spring.http.multipart.maxFileSize=100Mb
spring.http.multipart.maxRequestSize=500Mb
maxFileSize 是單個檔案大小,maxRequestSize是設定總上傳的資料大小,單位根據自己需求定義,Mb和Kb都可以