Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Restlet图像上载未获取ImageInfo_Java_Ajax_Restlet_Image Upload - Fatal编程技术网

Java Restlet图像上载未获取ImageInfo

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

我目前有一个简单的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 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());