如何知道多部分请求

时间:2015-09-21 10:46:33

标签: java http-post mime-types multipartform-data multipart

我正在从我的客户端向我的服务器发送一个多部分请求,如下所示:

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然后我的服务器会认为它是一个图像,但他会因此而异常。

1 个答案:

答案 0 :(得分:2)

那是因为您没有设置MIME类型。您可以使用其他构造函数FileBody(file, contentType)来获取内容类型:

FileBody file2 = new FileBody(new File("./test2.txt"), ContentType.TEXT_PLAIN);
FileBody image1 = new FileBody(new File("./DSC_0064.JPG"), ContentType.create("image/jpeg"));
相关问题