java - 将图像上传到服务器(Java)

标签 java spring image http upload

我想从客户端接收图像并将其保存到文件夹中。当我从 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/

相关文章:

java - 图像滑动 View

spring - grails 中特定于环境的 web.xml?

java - 无法通过intellij运行配置直接运行 cucumber 功能

java - 我的报告在 Eclipse 中正常工作,但使用 jar 文件抛出 "No query executer factory registered for the ' MongoDbQuery'"

python - SpringBoot org.springframework.beans.factory.UnsatisfiedDependencyException 异常

spring - 每个消费者使用 gradle 从合约 repo 生成 stub

version-control - 视频编辑工作的版本控制

c++ - 将R,G,B阵列转换为RGB阵列

jquery - Nivo Slider 上的第一张图像出现扭曲

java - SQLite 数据库没有被创建..为什么?