如何用java将图像保存到sqlserver?当图像在我的项目包中时

xghobddn  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(399)

我正在创建一个应用程序,用户可以添加不同的个人资料,包括他的个人资料图片。但是,我想启用该选项时,没有图片上传。这样,我想保存一个默认的图像,它是在我的项目包。我的项目包中的图像
下面是我使用filechooser保存图片的部分代码,我可能和我想的差不多。

String F = TxtRutaFoto.getText();
FileInputStream fis = null; 
try{
File file = new File(F);   
fis = new FileInputStream(file);
int k = JOptionPane.showConfirmDialog(null, "DESEA GUARDAR LOS DATOS DEL JUGADOR?","PREGUNTA", JOptionPane.YES_NO_OPTION);
if(k == JOptionPane.YES_OPTION){   try (
CallableStatement pstm = conexion.conectar.getConnection().prepareCall("{call INSERTARJUGADOR(?,?,?,?,?,?,?)}")
             ){
pstm.setString(1, txtID.getText());
pstm.setString(2, txt_ape_pat.getText());
pstm.setString(3, txt_ape_mat.getText());
pstm.setString(4, txt_nombre.getText());
pstm.setString(5, txt_correo.getText());
pstm.setString(6, txt_direc.getText());
pstm.setBinaryStream(7, fis, (int) file.length());
ResultSet r = pstm.executeQuery();
nbewdwxp

nbewdwxp1#

问题解决了我用这个和它的作品。首先,我创建一个“资源”文件夹,其中是我的默认图片。然后我就用了下一个代码。

File file = new File(getClass().getResource("/resources/user.jpg").getFile());
FileInputStream fis = new FileInputStream(file);

那我就叫我的程序

pstm.setBinaryStream(7, fis);
ResultSet r = pstm.executeQuery();
rkttyhzu

rkttyhzu2#

你得去拿钥匙 InputStream 你jar里的照片。你可以用这个方法 classLoader#getResource 方法:

String loc = getClass().getClassLoader().getResource("/path/to/resource.jpg");
InputStream is = new URL(loc).openStream();

在默认情况下,可以设置该流而不是 FileInputStream . 你应该检查一下 loc 如果找不到文件,则返回null(有时必须去掉前导斜杠)。

相关问题