通过ajax上传文件
html前端代码(表单内的标签必须有name属性才可以被后台获取)
必须要在form标签中设置属性 ??enctype="multipart/form-data"
需要借助 FormData 对象
var formData = new FormData($("#form")[0]);Ajax 代码
<script>
        function up() {
            var formData = new FormData($("#form")[0]);      //创建FormData对象
            if($("#file").val() == ""){           //判空
                alert("未选择文件");
                return ;
            }
            formData.append(‘img‘, $(‘#file‘)[0].files[0]) //把file添加进去  name命名为img      FormData.append(key,value);
            $.ajax({
                url: "/web02_war_exploded/img",      //发送的地址
                data: formData,            //发送的数据
                type: "post",              //发送的方式
                contentType: false,
                processData: false,        //序列化数据 默认为true(不序列化)
                success: function(data) {
                    alert("操作成功");
                },
                error: function() {
                    alert("操作失败");
                }
            })
        }
    </script>后端代码
private Map<String, String> getParameters(HttpServletRequest request) {
        Map<String, String> params = new HashMap<>();
        try {
            DiskFileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload upload = new ServletFileUpload(factory);
            List<FileItem> items = upload.parseRequest(request);
            for (FileItem item : items) {
                if (item.isFormField()) {   //判断是否是普通的表单类型
                    params.put(item.getFieldName(), item.getString());
                }else{      //否则该表单是 File 型的
                    String fieldName = item.getFieldName(); //返回表单的name属性
                    String name = item.getName();   //返回文件的名称
                    File fil = new File("D:\\"+name);   //创建文件对象
                    item.write(fil);    //把上传的文件下载
                }
            }
        } catch (FileUploadException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return params;
    }Ajax中文乱码问题:https://blog.csdn.net/qq_22771739/article/details/81564042
相关推荐
  kentrl    2020-11-10  
 结束数据方法的参数,该如何定义?-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。<input id="add" type="button" value="新增visitor&quo
  ajaxyan    2020-11-09  
   zndy0    2020-11-03  
   学留痕    2020-09-20  
   learningever    2020-09-19  
   chongxiaocheng    2020-08-16  
   ajaxhe    2020-08-16  
   lyqdanang    2020-08-16  
   curiousL    2020-08-03  
   时光如瑾雨微凉    2020-07-19  
   坚持着执着    2020-07-16  
   jiaguoquan00    2020-07-07  
   李永毅    2020-07-05  
   坚持着执着    2020-07-05