怎么把图片存进mysql?????

bt592952205 2009-07-15 04:40:36
最近做一个网站想把图片存进数据库,怎么把图片存进mysql,可以直接存吗?还是要通过程序实现,急用,很苦恼
...全文
180 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
simple_pai 2009-07-22
  • 打赏
  • 举报
回复
一个存储和读取二进制图片的例子

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class BlobTest {


public static void main(String[] args) throws SQLException, IOException {
// create();
read();
}

static void read() throws SQLException, IOException {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
// 2.建立连接
conn = JdbcUtils.getConnection();
// conn = JdbcUtilsSing.getInstance().getConnection();
// 3.创建语句
st = conn.createStatement();

// 4.执行语句
rs = st.executeQuery("select big_bit from blob_test");

// 5.处理结果
while (rs.next()) {
// Blob blob = rs.getBlob(1);
// InputStream in = blob.getBinaryStream();
InputStream in = rs.getBinaryStream("big_bit");

File file = new File("IMG_0002_bak.jpg");
OutputStream out = new BufferedOutputStream(
new FileOutputStream(file));
byte[] buff = new byte[1024];
for (int i = 0; (i = in.read(buff)) > 0;) {
out.write(buff, 0, i);
}
out.close();
in.close();
}
} finally {
JdbcUtils.free(rs, st, conn);
}
}

static void create() throws SQLException, IOException {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
// 2.建立连接
conn = JdbcUtils.getConnection();
// conn = JdbcUtilsSing.getInstance().getConnection();
// 3.创建语句
String sql = "insert into blob_test(big_bit) values (?) ";
ps = conn.prepareStatement(sql);
File file = new File("IMG_0002.jpg");
InputStream in = new BufferedInputStream(new FileInputStream(file));

ps.setBinaryStream(1, in, (int) file.length());
// 4.执行语句
int i = ps.executeUpdate();

in.close();

System.out.println("i=" + i);
} finally {
JdbcUtils.free(rs, ps, conn);
}
}
}
lypfriends 2009-07-17
  • 打赏
  • 举报
回复
路过
aa147967084 2009-07-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 acmain_chm 的回复:]
楼上是个办法,并且大部分网站也是用的这种方法。用户把图片上传,则程序把图片文件保存在指定的目录下,并命令。然后在数据库中仅保存这个文件地址和文件名就行了。

如果在保存在数据库中,则可以用BLOB字段。然后要看你的开发语言是什么了,通过API来操作这个BLOB字段的读写。


[/Quote]
要是把图片以二进制存进数据库(本人也没用过),占用数据库空间得多大啊?,建议像2楼大虾说的,存个地址和文件名
bt592952205 2009-07-16
  • 打赏
  • 举报
回复
怎么以二进制存储
slimboy123 2009-07-15
  • 打赏
  • 举报
回复
1、存储图片的文件路径

2、存储二进制
ACMAIN_CHM 2009-07-15
  • 打赏
  • 举报
回复
ACMAIN_CHM 2009-07-15
  • 打赏
  • 举报
回复

楼上是个办法,并且大部分网站也是用的这种方法。用户把图片上传,则程序把图片文件保存在指定的目录下,并命令。然后在数据库中仅保存这个文件地址和文件名就行了。

如果在保存在数据库中,则可以用BLOB字段。然后要看你的开发语言是什么了,通过API来操作这个BLOB字段的读写。

ACMAIN_CHM 2009-07-15
  • 打赏
  • 举报
回复

楼上是个办法,并且大部分网站也是用的这种方法。用户把图片上传,则程序把图片文件保存在指定的目录下,并命令。然后在数据库中仅保存这个文件地址和文件名就行了。

如果在保存在数据库中,则可以用BLOB字段。然后要看你的开发语言是什么了,通过API来操作这个BLOB字段的读写。

hitexam 2009-07-15
  • 打赏
  • 举报
回复
可不可以把图片放在硬盘的某个位置,mysql表中某字段保存该图片的物理路径?

56,912

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧