【问题标题】:Required MultipartFile parameter 'files' is not present - MultipartyEntityBuilder所需的 MultipartFile 参数“文件”不存在 - MultipartyEntityBuilder
【发布时间】:2019-09-30 06:19:04
【问题描述】:

我正在尝试使用 httpclient(Post) 将多方发送到在服务器中运行的 spring 模块。所以它是宁静的网络服务。但是我的代码抛出错误。你能帮帮我吗?

我已经尝试过了: Spring : File Upload RESTFUL Web Service

HTTPCLIENT 文件:(POST 请求)

public class MultiFile {
public static void main(String args[]) throws ClientProtocolException, IOException
{
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost("http://localhost:8080/RESTapi/student/addimage");
File file = new File("/Users/prabhu-pt3030/Desktop/eclipse-workspace-new/testing/target/classes/tes/javaFile123.txt");
MultipartEntityBuilder entitybuilder = MultipartEntityBuilder.create();
FileBody filebody = new FileBody(file, ContentType.MULTIPART_FORM_DATA);
entitybuilder.addPart("files", filebody);
HttpEntity mutiPartHttpEntity = entitybuilder.build();  
httppost.setEntity(mutiPartHttpEntity); 
HttpResponse httpresponse = httpclient.execute(httppost);
}
}

弹簧控制器:

@RequestMapping(value="/student/addimage",method=RequestMethod.POST,headers = "content-type=multipart/form-data")
public  void Addingimage(@RequestParam(value="files") MultipartFile files)
{
 //System.out.println(files.isEmpty());
}

输出:

Required MultipartFile parameter 'files' is not present

【问题讨论】:

    标签: java spring http-post httpclient


    【解决方案1】:

    我认为 ContentType 存在问题。

    您的控制器找不到任何名称为“文件”的参数

    试试这个

    public class MultiFile {
        public static void main(String args[]) throws ClientProtocolException, IOException
        {
            CloseableHttpClient httpclient = HttpClients.createDefault();
            HttpPost httppost = new HttpPost("http://localhost:8080/RESTapi/student/addimage");
            File file = new File("/Users/prabhu-pt3030/Desktop/eclipse-workspace-new/testing/target/classes/tes/javaFile123.txt");
            MultipartEntityBuilder entitybuilder = MultipartEntityBuilder.create();
            FileBody filebody = new FileBody(file, ContentType.DEFAULT_BINARY);
            entitybuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
            entitybuilder.addPart("files", filebody);
            HttpEntity mutiPartHttpEntity = entitybuilder.build();  
            httppost.setEntity(mutiPartHttpEntity); 
            HttpResponse httpresponse = httpclient.execute(httppost);
        }
    }
    

    参考这里more detail

    【讨论】:

    • 不!我遇到了同样的错误。我将 contentype 更改为 default_binary,甚至使用 deafult_text。但仍然得到同样的错误
    猜你喜欢
    • 2014-05-08
    • 2017-02-12
    • 2021-04-12
    • 2018-04-05
    • 2013-09-20
    • 2015-06-11
    • 2014-09-10
    • 1970-01-01
    • 2019-03-14
    相关资源
    最近更新 更多