php与mysql图片添加和显示有问题?
`luntan`----------------------------------------------------------------表的结构`tb_tpsc`...
`luntan`
--
-- --------------------------------------------------------
--
-- 表的结构 `tb_tpsc`
--
CREATE TABLE `tb_tpsc` (
`file` blob NOT NULL,
`id` int(11) NOT NULL auto_increment,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=6 ;
<form name="myform" method="post" action="tptj_ok.php" enctype="multipart/form-data">
<tr>
<td align="right" width="28%">上传路径:</td>
<td width="72%"><input name="file" type="file" size="23" maxlength="60" >
</td>
</tr>
<tr align="center">
<td colspan="2"><input name="btn_tj" type="submit" id="btn_tj" value="提交">
<input name="btn_cx" type="reset" id="btn_cx" value="重写"></td>
</tr>
</table>
</form>
添加图片
<?php
include("conn/conn.php");
//设置图片的上传时间
$fp=fopen($file,"rb"); //以只读方式打开文件
$file=addslashes(fread($fp,filesize($file))); //将文件中的引号部分加上反斜线
$query="insert into tb_tpsc (tpmc,file,author,scsj) values ('$tpmc','$file','$author','$scsj')"; //创建插入图片数据的sql语句
$result=mysql_query($query);
echo "<meta http-equiv=\"refresh\" content=\"1;url=browse_pic.php\">图片上传成功,请稍等...";
?>
显示图片
<?php include "conn/conn.php"; ?>
$query="select * from tb_tpsc ";
$result=mysql_query($query);
?>
<?php
while($info=mysql_fetch_array($result))
{
?>
<td height="112"colspan="2"><div align="center"><img src="image.php?recid=<?php echo $info[id];?>" width="200" height="100"></div></td>
<?php
}
?> 展开
--
-- --------------------------------------------------------
--
-- 表的结构 `tb_tpsc`
--
CREATE TABLE `tb_tpsc` (
`file` blob NOT NULL,
`id` int(11) NOT NULL auto_increment,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=6 ;
<form name="myform" method="post" action="tptj_ok.php" enctype="multipart/form-data">
<tr>
<td align="right" width="28%">上传路径:</td>
<td width="72%"><input name="file" type="file" size="23" maxlength="60" >
</td>
</tr>
<tr align="center">
<td colspan="2"><input name="btn_tj" type="submit" id="btn_tj" value="提交">
<input name="btn_cx" type="reset" id="btn_cx" value="重写"></td>
</tr>
</table>
</form>
添加图片
<?php
include("conn/conn.php");
//设置图片的上传时间
$fp=fopen($file,"rb"); //以只读方式打开文件
$file=addslashes(fread($fp,filesize($file))); //将文件中的引号部分加上反斜线
$query="insert into tb_tpsc (tpmc,file,author,scsj) values ('$tpmc','$file','$author','$scsj')"; //创建插入图片数据的sql语句
$result=mysql_query($query);
echo "<meta http-equiv=\"refresh\" content=\"1;url=browse_pic.php\">图片上传成功,请稍等...";
?>
显示图片
<?php include "conn/conn.php"; ?>
$query="select * from tb_tpsc ";
$result=mysql_query($query);
?>
<?php
while($info=mysql_fetch_array($result))
{
?>
<td height="112"colspan="2"><div align="center"><img src="image.php?recid=<?php echo $info[id];?>" width="200" height="100"></div></td>
<?php
}
?> 展开
2个回答
展开全部
看你的代码不是很完整,不知道其他部分有没有什么错误.
说几个问题你注意检查一下吧
第一,只读模式
$fp=fopen($file,"rb"); 参数应该是r不是rb
第二,图片的大小你没有限制,推荐20K以下的图片,因为如果你数据库使用的是MYSQL那么你当前的图片就只能在64K以下,MYSQL的Blob和其他数据库的不一样,具体你查下看看好像大小只能在64K以内
第三,检查一下PHP配置文件中的设置,看看最大上传文件允许大小是多少,再看一下POST传递最大值是多少,一定要保证POST最大值比允许文件最大的值大.
基本上就这些,不过我还是跟楼上的老兄一样,推荐你把图片用复制的方式放到某个文件夹内不要存入数据库.
说几个问题你注意检查一下吧
第一,只读模式
$fp=fopen($file,"rb"); 参数应该是r不是rb
第二,图片的大小你没有限制,推荐20K以下的图片,因为如果你数据库使用的是MYSQL那么你当前的图片就只能在64K以下,MYSQL的Blob和其他数据库的不一样,具体你查下看看好像大小只能在64K以内
第三,检查一下PHP配置文件中的设置,看看最大上传文件允许大小是多少,再看一下POST传递最大值是多少,一定要保证POST最大值比允许文件最大的值大.
基本上就这些,不过我还是跟楼上的老兄一样,推荐你把图片用复制的方式放到某个文件夹内不要存入数据库.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询