【发布时间】:2015-09-21 10:46:33
【问题描述】:
我正在从我的客户端向我的服务器发送一个多部分请求,如下所示:
FileBody file2 = new FileBody(new File("./test2.txt"));
FileBody image1 = new FileBody(new File("./DSC_0064.JPG"));
如您所见,其中一个文件是 txt,另一个是 JPG 图像。
在服务器上,我收到请求并获取每个部分的标头,然后得到:
------------Part 1------------
content-disposition=form-data; name="test2"; filename="test2.txt"
content-type=application/octet-stream
content-transfer-encoding=binary
------------Part 2------------
content-disposition=form-data; name="image1"; filename="DSC_0064.JPG"
content-type=application/octet-stream
content-transfer-encoding=binary
如您所见,它们的内容类型都是application/octet-stream。如何确定动态环境中的实际类型?是图像吗?文字?视频?
我不能依赖文件名,因为用户可以将它例如从 txt 更改为 png,然后我的服务器会认为它是一个图像,但他会因此而异常。
【问题讨论】:
-
真的没有办法找到答案。文件扩展名正是为此目的。文件以字节为单位后,它可以是文本、压缩数据、图像、歌曲等。您可以做的是捕捉错误并忽略该文件。您甚至可以在客户端执行此操作,因此服务器不会收到很多垃圾
标签: java http-post mime-types multipartform-data multipart