【发布时间】:2020-12-30 08:45:47
【问题描述】:
对于我正在处理的小程序,我需要将BufferedImage 文件转换为输入流,以便我可以将图像上传到我的 MySQL 服务器。最初我使用的是这段代码:
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection =
DriverManager.getConnection(connectionURL, "user", "pass");
psmnt = connection.prepareStatement(
"insert into save_image(user, image) values(?,?)");
psmnt.setString(1, username);
ImageIO.write(image, "png", new File("C://image.png"));
File imageFile = new File("C://image.png");
FileInputStream fis = new FileInputStream(imageFile);
psmnt.setBinaryStream(2, (InputStream)fis, (fis.length()));
int s = psmnt.executeUpdate();
if(s > 0) {
System.out.println("done");
}
(在捕获相关异常时)代码挂在小程序尝试将图像保存到计算机的部分。该代码在 Eclipse 中或每当我从 localhost 运行小程序时都能完美运行,所以我假设问题在于小程序在将文件保存到用户计算机时所具有的权限。
我只是想知道是否有一种方法可以将图像文件转换为输入流,而无需将文件保存到用户的计算机上。我尝试使用:
ImageIO.createImageInputStream(image);
但后来我无法将ImageInputStream 转换回InputStream。有什么建议吗?
谢谢!
【问题讨论】:
-
是的,这可能不是最佳做法。谢谢你的信息,我稍后会解决这个问题。