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/*首先,它似乎不起作用,但是当我重新启动服务器时,它工作了。谢谢:)