我试图在spring Boot2.0应用程序中使用新的反应性web-mvc实现。我试图定义一个方法,它使用多部分文件,但没有成功地使它工作:(-我总是得到一个415错误。
一方面,我有一个包含以下请求映射的控制器:
@RequestMapping(method = RequestMethod.POST, path = "/myPath/{param}/{param2}", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@ResponseBody
public Mono<Void> postFile(
@RequestBody MultipartFile data,
@PathVariable("param") String param,
@PathVariable("param2") String param2,
@RequestHeader(name = HEADER_DATE, required = false) @DateTimeFormat(pattern = DATE_FORMAT) Instant instant
){
return fileService.handleData(Mono.just(data), param, param2, instant);
}
另一方面,我不得不在基本依赖项的顶部添加一个服务器,因为netty似乎不能处理多部分文件。因此,我添加了spring-boot-starter-tomcat
依赖项,该依赖项使multipartautoconfiguration
能够匹配并满足应用程序自动配置。
使用curl调用发布内容时:curl'meta-date:20170101104532'--form“file=@file.bin”http://localhost:8082/mypath/foo/bar
调试日志被激活(logging.level.org.springframework.web=debug
)时,我遇到此异常:org.springframework.web.server.unsupportedmediaTypeStatusException:请求失败[状态:415,原因:“内容类型'multipart/form-data
此错误是由
RequestBodyArgumentResolver
引发的,该文件具有以下受支持的媒体类型:[*/*,text/XML,application/*+JSON;charset=utf-8,application/XML,text/plain;charset=utf-8,application/xml;charset=utf-8,application/xww-form-urlencoded,application/JSON;charset=utf-8]
由|9DecoderHttpMessageReader
提供。
在发帖之前,我还看了一下:
- 不支持Spring MultiPart MediaType,这在这里似乎不相关,因为我的autoconf报表包含以下条目:
MultipartAutoConfiguration#MultipartResolver Matched
- 使用angularjs$HTTP将content-type设置为utf-8添加标头设置
content-transfer-encoding:binary
没有更改任何内容。
我的理解是Spring Web5.0使用了一个新的请求解码器系统,因为我在Spring 4 Spring Boot应用程序上找不到这些类,而且还没有任何
DecoderHttpMessageReader
处理多部分文件,我错过了什么吗?还是等一个再实施?
好吧,现在看来这只是没有实现,因为它目前存在一个对此特性的拉动请求:添加reactive multipart request support#1201
早该检查一下...
“编辑”:问题已经解决,合并到Spring master分支。应该不再是问题了。
我正在传递多部分文件与其他用户信息。无法将类型的属性值转换为属性嵌套异常为 下面的代码我已经试过了 控制器类 @RequestMapping(value=RestMappingURLS.user.saveUser,headers={“Content-Type=Multipart/Mixed”,“Content-Type=Multipart/Form-Data”})public RestRespon
我是vapor的初学者,我选择vapor 3-rc作为开始,因为它似乎打破了vapor 2的变化。不幸的是,目前还没有完整的文档。 我目前正在尝试将一个简单的txt文件从Postman上传到我的Vapor 3本地服务器。 这是我的路线 和我的控制器 首先,通过执行邮递员请求,服务器返回: 通过研究源代码和关于此的有限文档,我似乎应该声明一个解码器来支持多部分传入请求。 所以我做到了: 我使用For
我上传到S3使用以下代码: 我无法了解boto内部如何处理分段上传的任何信息。我对同样的事情有几个问题,让我们假设我有2.5 MB的文件: 然后文件将分3部分上传,如1,1和.5 MB? 所有3个部分将并行上传还是按顺序上传? 在java的aws库中,我们有转移管理器,在博托中有什么类似的东西吗? 此代码是否足以用于多段上传?因为我遇到了一些复杂的代码示例 任何帮助都将不胜感激。
问题内容: 我想使用PHP上传文件,但问题是我不知道要上传多少文件。 我的问题是,如果使用该如何上传文件? 我将仅添加“文件”框,并使用JavaScript创建更多要上传的文件输入,但是如何在PHP中处理它们呢? 问题答案: 请参阅:$ _FILES ,处理文件上传
我有ApacheTomcatWeb服务器,在这里我运行3-4JavaSpring和hibernate应用程序。但问题是,当有太多请求进入服务器时,服务器会给出内存不足错误或堆大小错误,最后由于服务器没有响应而导致站点关闭。有时还会出现连接错误或套接字错误。我希望我的服务器至少能处理2000个请求。 到现在为止,我用了很多方法来处理这个问题。 通过更改setenv中的大小来增加服务器的堆大小。sh文
我想从Python中为大约8000个文件启动一个外部命令。每个文件都独立于其他文件进行处理。唯一的限制是在处理完所有文件后继续执行。我有4个物理核,每个物理核有2个逻辑核(返回8)。我的想法是使用一个由四个并行独立进程组成的池,这些进程将在8个内核中的4个上运行。这样我的机器就可以同时使用了。 以下是我一直在做的事情: 连续处理一批100个文件需要120秒。上述多处理版本(函数)只需20秒即可完成