我一直在尝试将图像
上传到数据库。因此,我制作了一个浏览按钮来浏览目录并获取图像。假设如果没有选择图像,默认图像
将上传到数据库。该图像存储在源文件夹下名为'resources'
的文件夹中。在图像中,helper是包含.java文件的文件夹,下面是resources
文件夹我将图像上传为 FileInputStream
,代码为
File pic=new File(imgloc);
FileInputStream fis=new FileInputStream(pic);
如果未选择图像上传默认图像,我的代码是
File pic=new File(this.getClass().getResource("/resources/profile1.png").getFile());
FileInputStream fis=new FileInputStream(pic);
我对数据库的查询是
ps.setBinaryStream(1,fis ,(int) pic.length()); //While substituing for '?' in query
构建为 jar 后,在尝试添加默认图像时会产生 FileNotFoundException
。可能这个问题被问了好几次,我没有找到解决方案。我想将图像作为文件读取。提前致谢。
最佳答案
为了帮助说明,我创建了一个带有源目录的项目
src
在源代码下面我有一个包 starthere
与类(class)Main
我创建另一个源目录xxx
并放入文件 a.txt
我也在 xxx
下创建名为 text
的目录并放入名为 b.txt
的文件中
我也是在 src
下创建的名为 other
的目录并放入一个名为 c.txt
的文件中
我的代码是
URL url = Main.class.getResource("/a.txt");
System.out.println(url);
URL url2 = Main.class.getResource("/text/b.txt");
System.out.println(url2);
URL url3 = Main.class.getResource("/other/c.txt");
System.out.println(url3);
我的输出是
D:\temp>java -cp ab.jar starthere.Main
jar:file:/D:/temp/ab.jar!/a.txt
jar:file:/D:/temp/ab.jar!/text/b.txt
jar:file:/D:/temp/ab.jar!/other/c.txt
编辑
由于您不想使用文件,而只想使用输入流,因此可以使用
InputStream fis = Main.class.getResourceAsStream("/a.txt");
然后使用 ps.setBinaryStream(1, fis);
设置
关于java - 如何从源文件夹中以 FileInputStream 形式读取图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44940119/