純js調用Servlet圖片上傳(XMLHttpRequest/FormData方式IE10+纔行)(獲取參數爲空的問題)

JS端

    //上傳文件方法
    function upladFile() {
        //純js調用Servlet圖片上傳(XMLHttpRequest/FormData方式IE10+纔行)
        //注意(瀏覽器高速模式/IE10+纔行,IE10-不支持FormData())
        var form = new FormData(); // FormData 對象
        form.append("employeeId", "11111111111111111111111111111"); // 文件對象
        form.append("fileFlag", "12");
        form.append("base64Data", "data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEBLAEsAAD/2wBDAAgGBgc");

        var url = "http://.../jsUploadBase64Servlet";
        var xhr = new XMLHttpRequest(); // XMLHttpRequest 對象
        xhr.open("post", url); //post方式,url爲服務器請求地址,true 該參數規定請求是否異步處理。
        //xhr.setRequestHeader("Content-Type", "
application/x-www-form-urlencoded");//表單數據傳輸
        //xhr.setRequestHeader("Content-Type", "
multipart/form-data");//二進制數據傳輸
        //xhr.setRequestHeader("Content-Type", "
application/json");//Json數據傳輸

        xhr.send(form); //開始上傳,發送form數據
        
        alert("Finish!!!");
    }


Java端

        //like12 add,bug,20190331
        //form提交的時候,enctype爲mutilpart/form-date,以二進制形式傳輸
        //加上這兩句,重新封裝request,再接收參數就可以了
        MultipartResolver resolver = new CommonsMultipartResolver(
                request.getSession().getServletContext());
        MultipartHttpServletRequest multiRequest = resolver.resolveMultipart(request);
        
        String employeeId = multiRequest.getParameter("employeeId");
        String fileFlag = multiRequest.getParameter("fileFlag");
        String base64Data = multiRequest.getParameter("base64Data");
        System.out.println("---" + employeeId);
        System.out.println("---" + fileFlag);
        System.out.println("---" + base64Data);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章