我想从客户端接收图像并将其保存到文件夹中。当我从 POST-MAN
收到它时它只生成字节:
ˇÿˇ‡ JFIF H H ˇ· XExif MM * ái & † † † ± ˇÌ 8Photoshop 3.0 8BIM 8BIM % ‘ åŸè ≤ ÈÄ òϯB~ˇ¿ ± " ˇƒ
没关系,我可以接收并保存。
但是当我尝试从 IOS 接收时,它还会在正文中向我发送一些信息:
--Boundary+71ADC8832D9A5F95
Content-Disposition: form-data; name="file"; filename="fileName.jpg"
Content-Type: image/jpeg
ˇÿˇ‡ JFIF H H ˇ· XExif MM * ái & † † † ± ˇÌ 8Photoshop 3.0 8BIM 8BIM % ‘ åŸè ≤ ÈÄ òϯB~ˇ¿ ± " ˇƒ
如何从中获取唯一的图像?
我的Java代码是:
InputStream stream = request.getInputStream();
bytes = IOUtils.toByteArray(stream);
File file = new File("myfile/1.jpg");
BufferedImage img = ImageIO.read(new ByteArrayInputStream(bytes));
ImageIO.write(img, "JPEG", file);
更新:对于分段上传图像,我添加了代码:
if(request instanceof MultipartHttpServletRequest){
/**
* multipart
*/
MultipartHttpServletRequest mrequest = (MultipartHttpServletRequest) request;
Iterator<String> itr = mrequest.getFileNames();
MultipartFile file = mrequest.getFile(itr.next());
bytes = file.getBytes();
}
但它不是 MultipartHttpServletRequest
的实例。为什么?
最佳答案
我找到了解决方案:
spring和tomcat配置问题...我已经添加了
<Context
allowCasualMultipartParsing="true" />
在tomcat的server.xml中。
然后将bean添加到WebConfig:
@Bean
public MultipartResolver multipartResolver() {
CommonsMultipartResolver resolver = new CommonsMultipartResolver();
resolver.setDefaultEncoding("utf-8");
return resolver;
}
关于java - 将图像上传到服务器(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32063412/