如何在MySQL中存储图片?

Kar*_*k.m 6 java mysql database blob

我想将图像存储在MySQL数据库中.我创建了一个具有BLOB数据类型的表,但现在如何将图像存储在此表中?

Dan*_*llo 10

您可能需要查看以下示例:

来自java2s.com:将图片插入MySQL:

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class InsertPictureToMySql {
  public static void main(String[] args) throws Exception, IOException, SQLException {
    Class.forName("org.gjt.mm.mysql.Driver");
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/databaseName", "root", "root");
    String INSERT_PICTURE = "INSERT INTO MyPictures (photo) VALUES (?)";

    FileInputStream fis = null;
    PreparedStatement ps = null;
    try {
      conn.setAutoCommit(false);
      File file = new File("/tmp/photo.png");
      fis = new FileInputStream(file);
      ps = conn.prepareStatement(INSERT_PICTURE);
      ps.setBinaryStream(1, fis, (int) file.length());
      ps.executeUpdate();
      conn.commit();
    } finally {
      ps.close();
      fis.close();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

MySQL表:

CREATE TABLE MyPictures (
   photo  BLOB
);
Run Code Online (Sandbox Code Playgroud)

如果映像位于MySQL服务器主机上,则可以使用LOAD_FILE()MySQL客户端的命令:

INSERT INTO MyPictures (photo) VALUES(LOAD_FILE('/tmp/photo.png'));
Run Code Online (Sandbox Code Playgroud)

  • 是的,您可能想尝试使用`LOAD_FILE()`函数:`INSERT INTO mytbl(image_data)VALUES(LOAD_FILE('/ tmp/myimage.png'));`(http://www.freeopenbook.com/ mysqlcookbook/mysqlckbk-CHP-17-SECT-7.html) (3认同)