0

我正在用 jsp&servlet 创建一个网站

我想问:

将图像存储在数据库(mysql)中并检索它的最佳方法是什么

将其用作个人资料的图片

我该怎么做?

提前谢谢大家。

4

3 回答 3

3

两种常见的解决方案:

  • 直接在数据库中的字节字段中

  • 在磁盘上,路径存储在数据库中(我个人喜欢使用文件的 SHA1 作为名称,所以我不能有两次相同的文件,如果 SHA1 是 abcdef,路径是 a/b/cdef)

两种解决方案都非常有效。第一个解决方案的优点是只有一个文件要备份、启用回滚等等。第二种可能更自然,因为磁盘文件系统是用来存储文件的。

于 2012-05-05T15:28:41.093 回答
2

将图像保存在服务器上的文件夹中。将图像路径保存在 db 中。在显示时从 db 获取图像路径并检索图像。

于 2012-05-05T15:29:15.857 回答
1

将图像存储在数据库中。

    import java.sql.*;
    import java.io.*;

    public class insertImage{
     public static void main(String[] args) {
      System.out.println("Insert Image Example!");
      String driverName = "com.mysql.jdbc.Driver";
      String url = "jdbc:mysql://localhost:3306/";;
      String dbName = "databasename";
      String userName = "root";
      String password = "root";
      Connection con = null;

      try{
       Class.forName(driverName);
       con = DriverManager.getConnection(url+dbName,userName,password);
       Statement st = con.createStatement();
       File imgfile = new File("images.jpg");
       FileInputStream fin = new FileInputStream(imgfile);
       PreparedStatement pre = con.prepareStatement("insert into Tablename values(?)");
       pre.setBinaryStream(3,fin,(int)imgfile.length());
       pre.executeUpdate();
       System.out.println("Inserting Successfully!");
       pre.close();
       con.close(); 
     }
     catch (Exception e){
      System.out.println(e.getMessage());
     }
    }
   }

使用 Servlet http://www.roseindia.net/servlets/retreiveimage.shtml从数据库中检索图像

于 2012-05-05T15:35:54.200 回答