Genyu_8 2021-11-19 16:32 采纳率: 50%
浏览 66
已结题

为什么ImageIO.read无法识别流

问题遇到的现象和发生背景

在进行文件上传时,遇到的问题.
前端传递的 参数为 MultipartFile file
后端转成Base64 Base64Str
调用存储接口(参数为不含头部信息的Base64)
解码之后转换成流用ImageIO读取时一直提示是NULL

前端传递过来的参数是可以收到的,转成base64也没有问题,转换成流的过程也没有问题,就是转成流之后
ImageIO读取为NULL

我以为是传递的时候得包含头部信息 data:image/jpg;base64 这种,结果还是NULL,
后面查找资料说是因为图片格式和后缀不符合, 上传的后缀为JPG
我又查看了上传的图片格式,??JFIF 是JFIF,也就是jpg

这我就不明白了问题出在哪

img


img

我的解答思路和尝试过的方法

要不要换个流对象>?
求解,或者解决的方向,

  • 写回答

4条回答 默认 最新

  • Vae 东 2021-11-19 17:43
    关注

    jfif是一种图片的存储格式,由JPEG存储格式衍生而来,保存文件时其文件名后缀为“.jfif .就是前端命名不规范.导致你的BASE64流生成的不对,方法无法识别.这样?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 关注

    先看看控制器里面MultipartFile对象有没有值。

    评论
  • Vae 东 2021-11-19 17:04
    关注

    CSDN给你的排版,看的是一脸懵逼, 你是需要根据mineType获的文件后缀名还是根据文件后缀名获取mineType类型

    评论
  • Vae 东 2021-11-19 17:42
    关注

    因为图片格式和后缀不符合, 上传的后缀为JPG
    我又查看了上传的图片格式,??JFIF 是JFIF,也就是jpg 这个JFIF是啥格式 ,我自己就知道这两个

    /**
    * JPEG图像
    /
    JPEG("jpeg", "JPEG图像", "image/jpeg"),
    /
    *
    * JPG图像
    */
    JPG("jpg", "JPG图像", "image/jpg"),

    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 11月29日
  • 已采纳回答 11月21日
  • 修改了问题 11月19日
  • 修改了问题 11月19日
  • 展开全部

悬赏问题

  • ¥15 C++代码报错问题,c++20协程
  • ¥15 c++图Djikstra算法求最短路径
  • ¥15 Linux操作系统中的,管道通信问题
  • ¥15 ansible tower 卡住
  • ¥15 等间距平面螺旋天线方程式
  • ¥15 通过链接访问,显示514或不是私密连接
  • ¥100 系统自动弹窗,键盘一接上就会
  • ¥50 股票交易系统设计(sql语言)
  • ¥15 调制识别中这几个数据集的文献分别是什么?
  • ¥15 使用c语言对日志文件处理