<?php
$DBserver = "localhost";
$DBname = "new";
$DBuser = "root";
$DBpassword = "";
$con = mysql_connect("localhost","root","");
...
?>
11 个解决方案
#1
图片直接按照特定规则生成URI存磁盘就可以了。
#2
INSERT INTO `member` ( `xxxx`) VALUES
(_binary 0x496E6E6F20536574757020556E696E7374616C6C204C6F6720286229000000000000000000000000000000000000000000000000000000000000000000000000486569646953514C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000486569646953514CFF);
#3
木有人回答了。。如果非存数据库。。你就file_get_content得到串,addslashes之后插入即可,像普通字段一样。
#4
<?
/*
* 把图片存入mysql数据库
*
#
# 数据表的结构 `images`
#
CREATE TABLE images (
picid int(3) NOT NULL auto_increment,
picdata longblob NOT NULL,
pictext varchar(100) NOT NULL default '',
PRIMARY KEY (picid)
) TYPE=MyISAM;
*/
if(trim($picfile[0])!=""){
$link=@mysql_connect("localhost","root","root");
//连接,用你的具体连接名替换root,具体连接密码替换root
if($link==false)
{
echo "<script>alert('连接数据库时发生错误,请稍后再试!')</script>";
}
$res=mysql_select_db("kkk");
if($res==false)
{
echo "<script>alert('打开数据库时发生错误,请稍后再试!')</script>";
}
$tmpset=0;
// 存放成功加入的图片数目
for($i=0;$i<=3;$i++)
{
// picfile[i]存放所提交的图片信息(文件路径)
if(trim($picfile[$i])!="")
{
//读取数据
$fp=fopen($picfile[$i],"r");
$picdata=fread($fp,filesize($picfile[$i]));
fclose($fp);
//加上必要的标志符号
$picdata=addslashes($picdata);
//用具体的数据表名代替images
//pictext[i]存放所提交的图片的文字说明
$qu="insert into images(picdata,pictext) values('$picdata','$pictext[$i]')";
$res=@mysql_query($qu,$link);
if($res==false)
{
echo "<script>alert('图片 ".$i." 提交失败!')</script>";
continue;
}
$tmpset=$tmpset+1;
}
}
echo "<script>alert('操作成功!实际入库图片数 ".$tmpset." 张')</script>";
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<form action="<? echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data" name="form1">
<input type="file" name="picfile[]">
文件说明
<input type="text" name="pictext[]">
<br>
<input type="file" name="picfile[]">
文件说明
<input type="text" name="pictext[]">
<br>
<input type="file" name="picfile[]">
文件说明
<input type="text" name="pictext[]">
<br>
<input type="file" name="picfile[]">
文件说明
<input type="text" name="pictext[]">
<br>
<input type="submit" name="Submit" value="提交">
</form>
</body>
</html>
显示存在mysql中的图片
<?
/*
* 显示存在mysql中的图片
* 在外部用<img src="displayimg.php?picid=1">来调用数据库中的第一张图片
#
# 数据表的结构 `images`
#
CREATE TABLE images (
picid int(3) NOT NULL auto_increment,
picdata longblob NOT NULL,
pictext varchar(100) NOT NULL default '',
PRIMARY KEY (picid)
) TYPE=MyISAM;
*/
$link=@mysql_connect("localhost","root","root");
mysql_select_db("kkk");
$qu="select picid,picdata from images where picid=$picid";
$res=@mysql_query($qu,$link);
$num=mysql_num_rows($res);
if($num==0)
{
print "<br><br><br>";
print "<p><b>没有这张图片!</b></p>";
exit();
}
$row=@mysql_fetch_row($res);
header("Content-type:image/");
echo $row[1];
?>
#5
图片先上传,然后在数据库中保存路径!!!
#6
路径怎么保存在picfile[i]中呢?
我试了试固定的路径,貌似不行啊
我试了试固定的路径,貌似不行啊
#7
<?
$DBserver = "localhost";
$DBname = "new";
$DBuser = "root";
$DBpassword = "";
$con = mysql_connect("localhost","root","");
mysql_select_db("new");
if(trim("E:\wamp\www\images\0\0a\Yanjiujinzhan.png")!="")
{
$fp=fopen("E:\wamp\www\images\0\0a\Yanjiujinzhan.png","r");
$imgdata=fread($fp,filesize($fp));
fclose($fp);
$imgdata=addslashes($imgdata);
$sql="insert into image(img_size) value ('{$imgdata}')";
$con = @mysql_query($sql);
mysql_query($sql) or die(mysql_error());
}
?>
#8
1. $imgdata=fread($fp,filesize($fp));
filesize()接受的是一个字符串类型的文件名,而不是一个连接句柄
2. $imgdata=addslashes($imgdata);
二进制数据不需要这样
3. $con = @mysql_query($sql); 这是什么? 重复插入了已经。
filesize()接受的是一个字符串类型的文件名,而不是一个连接句柄
2. $imgdata=addslashes($imgdata);
二进制数据不需要这样
3. $con = @mysql_query($sql); 这是什么? 重复插入了已经。
#9
一般不建议将图片保存在数据库中,因为图片都比较大会影响查询的效率
小图片是可以放在库中的,并且隐秘性较好
存放图片数据的字段应使用 blob 类型的,如果用 text 类型就可能出现问题(字符集的原因)
Blob 64K
MediumBlob 16M
LongBlob 4G
在 window 下打开图片文件要用 rb 方式(显式的声明为二进制方式)
使用 file_get_contents 函数要高效的多
另外,即便是在 window 下面,路径符也要用“/”,养成良好的习惯,路子更宽
E:/wamp/www/images/0/0a/Yanjiujinzhan.png
小图片是可以放在库中的,并且隐秘性较好
存放图片数据的字段应使用 blob 类型的,如果用 text 类型就可能出现问题(字符集的原因)
Blob 64K
MediumBlob 16M
LongBlob 4G
在 window 下打开图片文件要用 rb 方式(显式的声明为二进制方式)
使用 file_get_contents 函数要高效的多
另外,即便是在 window 下面,路径符也要用“/”,养成良好的习惯,路子更宽
E:/wamp/www/images/0/0a/Yanjiujinzhan.png
#10
方法上面已经有了
但我只能说从DBA的角度讲,这是非常不推荐,甚至非常忌讳的一种使用方法...
但我只能说从DBA的角度讲,这是非常不推荐,甚至非常忌讳的一种使用方法...
#11
$DBserver = "localhost";
$DBname = "new";
$DBuser = "root";
$DBpassword = "";
$con = mysql_connect("localhost","root","");
mysql_select_db("new");
if(trim("E:/wamp/www/QWR/images/0/0a/Yanjiujinzhan.png")!="")
{
...
}
?>
怎么一直报错啊,帮忙写下代码可以吗?就是这个路径的图片,先测试一张
#1
图片直接按照特定规则生成URI存磁盘就可以了。
#2
INSERT INTO `member` ( `xxxx`) VALUES
(_binary 0x496E6E6F20536574757020556E696E7374616C6C204C6F6720286229000000000000000000000000000000000000000000000000000000000000000000000000486569646953514C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000486569646953514CFF);
#3
木有人回答了。。如果非存数据库。。你就file_get_content得到串,addslashes之后插入即可,像普通字段一样。
#4
<?
/*
* 把图片存入mysql数据库
*
#
# 数据表的结构 `images`
#
CREATE TABLE images (
picid int(3) NOT NULL auto_increment,
picdata longblob NOT NULL,
pictext varchar(100) NOT NULL default '',
PRIMARY KEY (picid)
) TYPE=MyISAM;
*/
if(trim($picfile[0])!=""){
$link=@mysql_connect("localhost","root","root");
//连接,用你的具体连接名替换root,具体连接密码替换root
if($link==false)
{
echo "<script>alert('连接数据库时发生错误,请稍后再试!')</script>";
}
$res=mysql_select_db("kkk");
if($res==false)
{
echo "<script>alert('打开数据库时发生错误,请稍后再试!')</script>";
}
$tmpset=0;
// 存放成功加入的图片数目
for($i=0;$i<=3;$i++)
{
// picfile[i]存放所提交的图片信息(文件路径)
if(trim($picfile[$i])!="")
{
//读取数据
$fp=fopen($picfile[$i],"r");
$picdata=fread($fp,filesize($picfile[$i]));
fclose($fp);
//加上必要的标志符号
$picdata=addslashes($picdata);
//用具体的数据表名代替images
//pictext[i]存放所提交的图片的文字说明
$qu="insert into images(picdata,pictext) values('$picdata','$pictext[$i]')";
$res=@mysql_query($qu,$link);
if($res==false)
{
echo "<script>alert('图片 ".$i." 提交失败!')</script>";
continue;
}
$tmpset=$tmpset+1;
}
}
echo "<script>alert('操作成功!实际入库图片数 ".$tmpset." 张')</script>";
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<form action="<? echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data" name="form1">
<input type="file" name="picfile[]">
文件说明
<input type="text" name="pictext[]">
<br>
<input type="file" name="picfile[]">
文件说明
<input type="text" name="pictext[]">
<br>
<input type="file" name="picfile[]">
文件说明
<input type="text" name="pictext[]">
<br>
<input type="file" name="picfile[]">
文件说明
<input type="text" name="pictext[]">
<br>
<input type="submit" name="Submit" value="提交">
</form>
</body>
</html>
显示存在mysql中的图片
<?
/*
* 显示存在mysql中的图片
* 在外部用<img src="displayimg.php?picid=1">来调用数据库中的第一张图片
#
# 数据表的结构 `images`
#
CREATE TABLE images (
picid int(3) NOT NULL auto_increment,
picdata longblob NOT NULL,
pictext varchar(100) NOT NULL default '',
PRIMARY KEY (picid)
) TYPE=MyISAM;
*/
$link=@mysql_connect("localhost","root","root");
mysql_select_db("kkk");
$qu="select picid,picdata from images where picid=$picid";
$res=@mysql_query($qu,$link);
$num=mysql_num_rows($res);
if($num==0)
{
print "<br><br><br>";
print "<p><b>没有这张图片!</b></p>";
exit();
}
$row=@mysql_fetch_row($res);
header("Content-type:image/");
echo $row[1];
?>
#5
图片先上传,然后在数据库中保存路径!!!
#6
路径怎么保存在picfile[i]中呢?
我试了试固定的路径,貌似不行啊
我试了试固定的路径,貌似不行啊
#7
<?
$DBserver = "localhost";
$DBname = "new";
$DBuser = "root";
$DBpassword = "";
$con = mysql_connect("localhost","root","");
mysql_select_db("new");
if(trim("E:\wamp\www\images\0\0a\Yanjiujinzhan.png")!="")
{
$fp=fopen("E:\wamp\www\images\0\0a\Yanjiujinzhan.png","r");
$imgdata=fread($fp,filesize($fp));
fclose($fp);
$imgdata=addslashes($imgdata);
$sql="insert into image(img_size) value ('{$imgdata}')";
$con = @mysql_query($sql);
mysql_query($sql) or die(mysql_error());
}
?>
#8
1. $imgdata=fread($fp,filesize($fp));
filesize()接受的是一个字符串类型的文件名,而不是一个连接句柄
2. $imgdata=addslashes($imgdata);
二进制数据不需要这样
3. $con = @mysql_query($sql); 这是什么? 重复插入了已经。
filesize()接受的是一个字符串类型的文件名,而不是一个连接句柄
2. $imgdata=addslashes($imgdata);
二进制数据不需要这样
3. $con = @mysql_query($sql); 这是什么? 重复插入了已经。
#9
一般不建议将图片保存在数据库中,因为图片都比较大会影响查询的效率
小图片是可以放在库中的,并且隐秘性较好
存放图片数据的字段应使用 blob 类型的,如果用 text 类型就可能出现问题(字符集的原因)
Blob 64K
MediumBlob 16M
LongBlob 4G
在 window 下打开图片文件要用 rb 方式(显式的声明为二进制方式)
使用 file_get_contents 函数要高效的多
另外,即便是在 window 下面,路径符也要用“/”,养成良好的习惯,路子更宽
E:/wamp/www/images/0/0a/Yanjiujinzhan.png
小图片是可以放在库中的,并且隐秘性较好
存放图片数据的字段应使用 blob 类型的,如果用 text 类型就可能出现问题(字符集的原因)
Blob 64K
MediumBlob 16M
LongBlob 4G
在 window 下打开图片文件要用 rb 方式(显式的声明为二进制方式)
使用 file_get_contents 函数要高效的多
另外,即便是在 window 下面,路径符也要用“/”,养成良好的习惯,路子更宽
E:/wamp/www/images/0/0a/Yanjiujinzhan.png
#10
方法上面已经有了
但我只能说从DBA的角度讲,这是非常不推荐,甚至非常忌讳的一种使用方法...
但我只能说从DBA的角度讲,这是非常不推荐,甚至非常忌讳的一种使用方法...
#11
$DBserver = "localhost";
$DBname = "new";
$DBuser = "root";
$DBpassword = "";
$con = mysql_connect("localhost","root","");
mysql_select_db("new");
if(trim("E:/wamp/www/QWR/images/0/0a/Yanjiujinzhan.png")!="")
{
...
}
?>
怎么一直报错啊,帮忙写下代码可以吗?就是这个路径的图片,先测试一张