Java Restlet图像上载未获取ImageInfo
我目前有一个简单的HTML表单,通过AJAX调用Restlet资源上传图像 在执行Sanselon.getImageInfo时,会出现以下错误:Java Restlet图像上载未获取ImageInfo,java,ajax,restlet,image-upload,Java,Ajax,Restlet,Image Upload,我目前有一个简单的HTML表单,通过AJAX调用Restlet资源上传图像 在执行Sanselon.getImageInfo时,会出现以下错误: Caused by: org.apache.sanselan.ImageReadException: Couldn't read magic numbers to guess format. at org.apache.sanselan.Sanselan.guessFormat(Sanselan.java:147) at
Caused by: org.apache.sanselan.ImageReadException: Couldn't read magic numbers to guess format.
at org.apache.sanselan.Sanselan.guessFormat(Sanselan.java:147)
at org.apache.sanselan.Sanselan.getImageParser(Sanselan.java:596)
....
我不知所措。我正在获取文件名。任何帮助都将不胜感激
以下是我的html:
<html>
<body>
<form>
<table>
<tr>
<td colspan="2">File Upload</td>
</tr>
<tr>
<th>Select File </th>
<td><input id="fileToUpload" name="fileToUpload" type="file" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="submit"/>
</td>
</tr>
</table>
</form>
<script>
$("form").submit(function(evt){
evt.preventDefault();
var formData = new FormData($(this)[0]);
$.ajax({
url: 'http://localhost:8080/api/v1/fileupload',
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
enctype: 'multipart/form-data',
processData: false,
success: function (response) {
alert(response);
}
});
return false;
});
</script>
</body>
</html>
它在以下代码行失败:
ImageInfo imageInfo = Sanselan.getImageInfo(fi.openStream(), fi.getName());
我认为您的代码即将消耗上传流的流三次:
- 第一次是通过完成StringBuilder(在您的情况下,这是完全无用的,因为图像文件是二进制文件,而不是基于字符的文件)
- 第二次通过使用sanselan获取图像信息
- 第三次使用fileUploadService保存图像
ImageInfo imageInfo = Sanselan.getImageInfo(fi.openStream(), fi.getName());