怎么把图片存进mysql????? 最近做一个网站想把图片存进数据库,怎么把图片存进mysql,可以直接存吗?还是要通过程序实现,急用,很苦恼 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可不可以把图片放在硬盘的某个位置,mysql表中某字段保存该图片的物理路径? 楼上是个办法,并且大部分网站也是用的这种方法。用户把图片上传,则程序把图片文件保存在指定的目录下,并命令。然后在数据库中仅保存这个文件地址和文件名就行了。如果在保存在数据库中,则可以用BLOB字段。然后要看你的开发语言是什么了,通过API来操作这个BLOB字段的读写。 楼上是个办法,并且大部分网站也是用的这种方法。用户把图片上传,则程序把图片文件保存在指定的目录下,并命令。然后在数据库中仅保存这个文件地址和文件名就行了。如果在保存在数据库中,则可以用BLOB字段。然后要看你的开发语言是什么了,通过API来操作这个BLOB字段的读写。 当您的问题得到解答后请及时结贴.http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html 一个存储和读取二进制图片的例子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); } }} 关于触发器的一个简单问题 在 Mysql 语句中使用 concat 的问题 mysql grant 多个ip ===狼哥帮我看下这个存储过程=== 小妹请教三张表连接问题! WinXP 下使用 MySQL 命令 : source filename, 如何记录 log ? 求sql语句,望大家帮助,谢谢! 请教mysql简单问题,谢谢大家, 求创建这样的表的sql语句 请问按数字区间 如何分组,求和呢? mysql 事务失败后,连接不上数据库。 mysql表里面有部分内容存成了更gb2312,怎么转成utf8?
http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
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);
}
}
}