我有一个要求,我想从用户获取图像的URL,然后将其转换为字节格式,并将其发送到我的服务器,我使用tomcat作为web-app服务器和hibernate作为ORM工具,我已经写好了服务器端代码用于使用BLOB将传入的字节保存到表中,但我的问题是如何将图像转换为字节数组,以便我可以将数组发送到服务器以进一步处理。
添加到上面,我可以从表中加载数据,然后可以将字节发送回客户端,但是如何将字节转换回图像。
目前,我在客户端使用HTML作为网页,使用Servlet作为请求和响应。
请帮帮我。
答案 0 :(得分:1)
如果是图像URL,那么只需将URL直接读入字节数组,如下所示:
public static byte[] getBytesFromURL(URL url) throws IOException {
InputStream in = null;
ByteArrayOutputStream out = null;
try {
in = url.openStream();
out = new ByteArrayOutputStream();
int len;
byte[] buf = new byte[1024 * 4];
while ((len = in.read(buf)) >= 0) {
out.write(buf, 0, len);
}
byte[] bytes = out.toByteArray();
return bytes;
} catch (IOException e) {
throw e;
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
}
}
if (out != null) {
try {
out.close();
} catch (IOException e) {
}
}
}
}
答案 1 :(得分:0)
检查java中的ImageIO
类。它具有读取和写入图像的方法。有关详细信息,请查看here。
答案 2 :(得分:0)
您似乎不需要对图像进行任何特殊计算。只需存储它们并将它们发送回浏览器即可。如果是这种情况,您实际上不需要将它们视为图像,您可以将它们作为java.io.File来处理。然后,您可以将它们存储为数据库中的BLOB。
为了帮助您管理上传,您可以使用commons-fileupload。或者,如果您使用的是SpringMVC,请查看Multipart Resolver。