java使用MultipartFile上传文件,后台报错:request is not a multipart request

java使用MultipartFile上传文件,后台报错:request is not a multipart request

日常开发中经常会用到MultipartFile文件上传的功能

1. 直接使用表单提交的方式

前端代码:

  选择文件:     

后端代码:

public Response page(HttpServletRequest request,MultipartFile apkFile){
    
}

注意事项:

1)必须是POST请求

2)form上必须声明 enctype="multipart/form-data"

2. 使用ajax方式提交到后台

前端代码: 

选择文件:
$.ajax({
    type: 'POST',
    url: url,
    data: params,//你要传递的参数,包括要上传的文件(如:$("#fileInput")[0].files[0])
    dataType: 'json',
    success: success,
    error: fail,
    complete: after
});

后端代码:

public Response page(HttpServletRequest request, HttpServletResponse response){
    //通过request获取请求类型
    String contentType = request.getContentType();
    if (contentType != null && contentType.toLowerCase().startsWith("multipart/")) {
        MultipartHttpServletRequest multipartRequest =
                WebUtils.getNativeRequest(request, MultipartHttpServletRequest.class);
        return multipartRequest.getFile(fileName);   //返回前端传递的文件信息
    } else {
        return null;
    }
}

注意:后台的方法里面不能写MultipartFile参数

使用ajax上传的时候,因为ajax是不能直接传递文件类型参数的,所以如果直接在后台方法里面写MultipartFile参数,当你没有上传文件的时候回直接提示request is not a multipart request(请求类型不是一个multipart请求),所以使用ajax方式的话就只能从request里面取获取你要上传的东西。


转载于:https://blog.csdn.net/qq_38400856/article/details/90770807

你可能感兴趣的:(java,上传)