您的当前位置:首页正文

javax.imageio.IIOException: Not a JPEG file: starts with 0xff 0xd9

2024-11-24 来源:个人技术集锦


问题描述:

最近在用java做一个上传图像识别文字的功能,上传图像后报错。

接口返回:

{
    "code": 500,
    "success": false,
    "data": null,
    "msg": "javax.imageio.IIOException: Not a JPEG file: starts with 0xff 0xd9"
}

后台报错:

解决思路:

1、看报错字面意思就是需要上传jpg文件,我上传的图片类型是png不符合要求,于是将png后缀改成jpg,重新上传还是报这个错,推测要么是png直接改后缀不行,必须图片另存为jpg格式,试了还是报错

查了下也有可能是文件损坏,于是我看了下我的代码是把上传的图片复制了份临时文件,访问的是临时文件,于是断点找到临时文件路径,发现果然是文件损坏,图片大小0kb,修改代码后问题解决

问题出现的原因:

文件损坏

解决方法:

原问题代码:

File tfile = File.createTempFile("tempfile", file.getOriginalFilename());
ocrResult = instance.doOCR(tfile);

修改后的代码:

File tfile = File.createTempFile("tempfile", file.getOriginalFilename());
file.transferTo(tfile);
ocrResult = instance.doOCR(tfile);

显示全文