【发布时间】:2019-11-10 20:46:26
【问题描述】:
所以我试图通过 AJAX 将 BLOB 图像发送到 Java 服务器,然后将其转换为 btye 数组。我能够得到 BufferedInputStream;但是,当我尝试将其转换为字节数组时,程序会挂起并且不会继续。有谁知道为什么会这样?
客户端是这样的:
$.ajax({
type: "POST",
url: "/com/uploadImage/",
data: blobImage,
cache: false,
contentType: false,
processData: false,
success: function (data) {
console.log(data);
}
这是我的java代码:
public void handleRequest() {
try {
BufferedInputStream bis = new BufferedInputStream(this.getSocket().getInputStream());
//this is the line that causes the program to hang
byte[] bytes = IOUtils.toByteArray(bis);
FileUtils.writeByteArrayToFile(new File("image.png"), bytes);
} catch (Exception e) {
e.printStackTrace();
}
}
【问题讨论】:
-
你试过调试你的Java代码吗?有什么错误输出吗?
-
@TimBiegeleisen 令人惊讶的是,根本没有错误。我尝试调试,我能够读取 BufferedInputStream 并查看数据;但是,一旦我尝试跳过
byte[] bytes = IOUtils.toByteArray(bis);行,它似乎就卡住了; -
BLOB 图像有多大?
-
@TimBiegeleisen 我已经尝试过使用从 50kb 到几百 kb 的图像,结果相同
-
我的猜测是Java与此无关。验证您是否可以从浏览器连接到该 URL,然后验证您是否可以从 Java 连接。我的猜测是您无法从 Java 连接。
标签: java httprequest blob