我正在尝试将文件(如图像文件)上传到Restful服务器,如下所示:
curl -X POST -H "Content-Type: multipart/form-data; boundary=----------------------------4ebf00fbcf09" --data-binary @sample.jpg http://localhost:3000/test
但是,我的Restful服务器资源似乎没有处理该请求。
multipart/form-data; boundary=...
如何获取实际内容类型,例如:“image / jpeg”等。这是我的网络资源的代码段:
try
{
ServletFileUpload upload = new ServletFileUpload();
FileItemIterator fileIterator = upload.getItemIterator(req);
while (fileIterator.hasNext()) {
FileItemStream item = fileIterator.next();
byte[] content = ByteStreams.toByteArray(item.openStream());
}
...
}
我关注的是代码可以支持的客户端上传类型,我使用Rest Console Chrome插件并上传符合此代码的附件,但上面的cURL代码无效。
此外,可以从FileItemIterator
检索的HttpServletRequest
是什么?
以下是我的restful Web服务资源的完整代码:http://bit.ly/QwTOLw
答案 0 :(得分:3)
您可能需要查看Spring's multipart (file upload) support上的Spring手册部分。确保在上下文中声明了MultipartResolver
bean,并考虑将该文件映射为表单支持对象中的MultipartFile
,这样就可以让Spring句柄解析/读取多部分数据本身(而不是尝试自己解析FileItemIterator,ServletFileUpload等。