高分相送,有一急问题

cwa 2002-05-10 09:44:59
我是按照以下文章介绍的方法,用mysql存储图片文件。
http://www.hafeletide.com/showphp.php?id=121

可是当传完图片后,数据库没有任何变化。无论我传输几张图片,
返回的ID永远是0。请问为什么?

我用的是win98+PHPTriad2.11

“Server API”是CGI。和这有关系吗?


...全文
35 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cwa 2002-05-13
请问如果不是模块化安装的PHP。
即“Server API”是CGI的

那么header()函数是不是没有用。
回复
cwa 2002-05-10
谢谢各位,我会一个个试的。
回复
benjamin9 2002-05-10
(1)表单页面加入以下enctype关键字:
<form name="formname" method="post" action="pictintodb.php"
enctype="multipart/form-data">
用实际的表单名代替formname,用实际的图片入库程序名代替pictintidb.php
(2)图片数据类型是LONGBLOB

(3)以下是小七小妹写的图片显示的相关主要代码:

前台的图片放置页面的关键语句:
<?
print"<img src=\"showpict.php?picid=$pictid\" width=\"236\" height=\"154\">";
?>

后台的showpict.php大致如下:
<?
$link=@mysql_connect("localhost","XXX","XXX");

$qu="use YYY";
$res=@mysql_query($qu,$link);

$qu="select picid,picdata from npict 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];

exit();
?>
回复
benjamin9 2002-05-10
试试看,下面的代码,我自己写的,在PHP4+APACHE+MYSQL上通过
图片和图片文字说明是从客户端通过表单(form)的文件框上传的.

<?
$link=@mysql_connect("localhost","yrname","yrpass");
//连接,用你的具体连接名替换yrname,具体连接密码替换yrpass
if($link==false)
{
print "<br><br><br>";
print "<p><b>连接数据库时发生错误,请稍后再试!</b></p>";
exit();
}

$qu="use yrbase";
// 用你的具体数据库代替yrbase
$res=@mysql_query($qu,$link);
if($res==false)
{
print "<br><br><br>";
print "<p><b>打开数据库时发生错误,请稍后再试!</b></p>";
exit();
}

$tmpset=0;
// 存放成功加入的图片数目

for($i=1;$i<=4;$i++)
{
// picfile[i]存放所提交的图片信息(文件路径)
// none表示用户没有在这个文件上传框中选择文件
if(trim($picfile[$i])!="none")
{
//读取数据
$fp=fopen($picfile[$i],"r");
$picdata=fread($fp,filesize($picfile[$i]));
fclose($fp);

//加上必要的标志符号
$picdata=addslashes($picdata);

//用具体的数据表名代替yrpict
//pictext[i]存放所提交的图片的文字说明
$qu="insert into yrpict(picid,picdata,pictext) values(null,'$picdata','$pictext[$i]')";
$res=@mysql_query($qu,$link);
if($res==false)
{
print "<br><br>";
print "<p><b>图片 ";
echo $i;
print " 提交失败!</b></P>";
continue;
}

$tmpset=$tmpset+1;
}

}

print "<br><br>";
print "<p><b>操作成功!</b></p>";
print "<p><b>实际入库图片数 ";
echo $tmpset;
print " </b></P>";
exit();

}

?>
回复
wasy 2002-05-10
<?php
if ($submit) {
MYSQL_CONNECT( "localhost", "sa", "");
mysql_select_db( "binary_data");

$data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));

$result=MYSQL_QUERY( "INSERT INTO binary_data (description,bin_data,filename,filesize,filetype) ".
"VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");
echo "INSERT INTO binary_data (description,bin_data,filename,filesize,filetype) VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')";
$id= mysql_insert_id();
print "<p>This file has the following Database ID: <b>$id</b>";

MYSQL_CLOSE();

} else {

?>
<META content="text/html; charset=big5" http-equiv=Content-Type>

<form method="post" action=" <?php echo $PHP_SELF; ?>" enctype="multipart/form-data">
File Description:<br>
<input type="text" name="form_description" size="40">
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">
<br>File to upload/store in database:<br>
<input type="file" name="form_data" size="40">
<p><input type="submit" name="submit" value="submit">
</form>

<?php

}

?>

</BODY>
</HTML>

<?// getdata.php3?id=
if($id) {

@MYSQL_CONNECT( "localhost", "sa", "");
@mysql_select_db( "binary_data");
$query = "select bin_data,filetype from binary_data where id=$id";
$result = @MYSQL_QUERY($query);
$data = @MYSQL_RESULT($result,0, "bin_data");
$type = @MYSQL_RESULT($result,0, "filetype");
Header( "Content-type: $type");
echo $data;
echo $type;
};
?>

这个程序在用php4+apache+window2000+mysql通过
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2002-05-10 09:44
社区公告
暂无公告