1. 程式人生 > >layui上傳多檔案後臺程式碼總結(java)

layui上傳多檔案後臺程式碼總結(java)

本文對接上篇文章《 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格式的,像本文中返回JSONObjectMap<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都可以