Java 获取HTTP状态400-所需的MultipartFile参数';文件';春天不存在

Java 获取HTTP状态400-所需的MultipartFile参数';文件';春天不存在,java,spring,file-upload,Java,Spring,File Upload,我正在尝试使用spring上传文件。下面是我的代码,我是如何工作的 但如果我尝试使用它,我会得到以下响应: HTTP状态400-所需的多部分文件参数“file”不存在 我不明白错误是什么 我正在使用高级rest客户端进行测试,并将文件作为附件上传 我的Java代码: @RequestMapping(value = "/upload",headers = "Content-Type=multipart/form-data", method = RequestMethod.POST) @Re

我正在尝试使用
spring
上传文件。下面是我的代码,我是如何工作的 但如果我尝试使用它,我会得到以下
响应:

HTTP状态400-所需的多部分文件参数“file”不存在

我不明白错误是什么

我正在使用高级rest客户端进行测试,并将文件作为附件上传

我的Java代码:

@RequestMapping(value = "/upload",headers = "Content-Type=multipart/form-data", method = RequestMethod.POST)
    @ResponseBody
    public String upload(@RequestParam("file") MultipartFile file)
    {
        String name= "test.xlsx";
        if (!file.isEmpty()) {
            try {
                byte[] bytes = file.getBytes();
                BufferedOutputStream stream =
                        new BufferedOutputStream(new FileOutputStream(new File(name)));
                stream.write(bytes);
                stream.close();
                return "You successfully uploaded " + name + "!";
            } catch (Exception e) {
                return "You failed to upload " + name + " => " + e.getMessage();
            }
        } else {
            return "You failed to upload " + name + " because the file was empty.";
        }
    }

当您提前选择文件rest客户端时,在右侧有一个输入框,在该输入框中写入参数的名称,在这种情况下,参数的名称是文件

控制器@RequestParam(“文件”)中定义的参数名称

弹簧需要

bean来处理文件上传

您应该在
应用程序上下文
文件中注册这个bean

内容类型也应有效。在您的情况下,
enctype=“多部分/表单数据”

EDIT1:

您可以为bean属性指定上载和内存大小:

  <bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- max upload size in bytes -->
        <property name="maxUploadSize" value="20971520" /> <!-- 20MB -->

        <!-- max size of file in memory (in bytes) -->
        <property name="maxInMemorySize" value="1048576" /> <!-- 1MB -->

    </bean>


当我已经在Krajee bootstrap输入文件示例(“”)中很好地配置了bean id时,我在输入框中写入了参数“file”的名称,这对我来说是有效的。

你能分享你的请求吗?要上载的文件:

按此处上载文件!试试看。将
class=“file”
添加到输入中<代码>
你的context.xml中有
吗?没有,它有什么用,我需要保存在哪里?是的,我是用那种方式使用的。请附上你的屏幕快照你有没有用于此案例的bean id?在我的案例中解决了这个问题如果我使用bean id,我不能将内容类型更改为其他类型吗?这取决于你或客户的内容类型希望发送和服务器接收。我认为它也应该与“application/json”一起使用。要上载的文件的最大大小是多少?我们不需要在“web.xml”文件中声明多部分筛选器吗?请看:multipartResolver org.springframework.web.Multipart.support.MultipartFilter multipartResolver/*首先,它似乎不起作用,但是当我重新启动服务器时,它工作了。谢谢:)