我正在尝试通过jsp上传图像,而在后端我正在尝试读取其元数据。但是我收到了这个错误
org.apache.commons.imaging.ImageReadException:无法读取幻数以猜测格式。
final ImageMetadata metadata = Imaging.getMetadata(file.getBytes());
问题是目标文件是MultipartFile而不是它,它应该是File类型。
答案 0 :(得分:1)
我使用下面的代码在File中转换了Multipartfile以避免错误。
File convFile = new File( multipart.getOriginalFilename());
multipart.transferTo(convFile);
final ImageMetadata metadata = Imaging.getMetadata(convFile);
答案 1 :(得分:0)
好吧,假设错误来自here(很难说没有完整的堆栈跟踪),
int i1 = is.read();
int i2 = is.read();
if ((i1 < 0) || (i2 < 0))
throw new ImageReadException(
"Couldn't read magic numbers to guess format.");
我认为图像的上传以某种方式被破坏,或文件错误。我建议只从文件系统中读取文件,检查前两个字节,然后从那里移动。
答案 2 :(得分:0)
我通过要求它读取空流而收到此错误,因此,如果file.getBytes()为空,也会发生此错误。