文件上传的脚本
create table Image(ImageNum int NOT NULL AUTO_INCREMENT PRIMARY KEY,
Image MEDIUMBLOB,FileSize CHAR(50),FileType CHAR(50));
-------------------------------------------------
<?
if($_POST=="OK")
{
@mysql_connect("localhost","root","password") or die("无法连接数据库");
@mysql_select_db("php_test") or die("无法连接数据库");
$data=addslashes(fread(fopen($image,"r"),filesize($image)));
$filesize=filesize($image);
$filetype=filetype($image);
$result=mysql_query("INSERT INTO Image (Image,FileSize,FileType)VALUES($data,$filesize,$filetype)");
}
?>
<HTML>
<HEAD>
<TITLE>文件上传</TITLE>
</HEAD>
<BODY>
<FORM METHOD=POST ACTION="">
请选择文件:<INPUT TYPE=FILE NAME="image" SIZE=40>
<P>
<INPUT TYPE="SUBMIT" NAME="OK" VALUE="OK">
<INPUT TYPE="RESET" NAME="RESET" VALUE="RESET">
</FORM>
<HR>
</BODY>
</HTML>
-----------------------------------------------------------------------------------
<?
@mysql_connect("localhost","root","password") or exit();
@mysql_select_db("php_test") or exit();
$result=mysql_query("SELECT Image,FileTypeFROM Image");
$date=mysql_result($result,0,"Image");
$type=mysql_result($result,0,"FileType");
header("content-type:$type");
echo $data;
?>
请高手看看有问题吗,谢谢!! 应该是不行……
1、FORM 缺少一个参数,是哪个我忘了……
2、没看见有copy()函数,你想怎么复制文件?
请你重发一遍,用 包起来…… 你的脚本过程都正确了.语法问题自己找吧.PHP语法快忘完了. :)
我找到了原来写的一个上传到mysql数据库的一个脚本.可以实现文件的上传入库和读取输出(Under GNU/Linux).方法参考一下,具体到实际再根据你的情况自己改啦.
create table if not exists image(
id bigint(20) not null,
data blob not null,
filesize bigint not null,
filetype char(10),
memo varchar(255),
primary key (id)
);
节选一部分PHP,原文件比较长
............
<form enctype="multipart/form-data" action="xxxxx.php" method="post">
............
<tr>
<td>
<div align="right">图象文件</div>
</td>
<td>
<input type="hidden" name="MAX_FILE_SIZE" value="3000000">
<input type="file" name="userfile">
</td>
</tr>
.............
下面是入库文件节选
.............
if (!(empty($_FILES['userfile']['tmp_name']))) {
$filename=$_FILES['userfile']['name'];
$path_parts=pathinfo($filename);
$filetype=$path_parts['extension'];
$filename=$_FILES['userfile']['tmp_name'];
$data=addslashes(fread(fopen("$filename", "r"), filesize($filename)));
$sqlquery="insert into image (id,data,filesize,filetype) values (".$id.",'$data',".filesize($filename).",'".$filetype."')";
$queryresult=mysql_query($sqlquery)
or die("Invalid query: ".mysql_error());
}
.............
最后是取出了
.............
$sqlquery1="select data,filetype from image where id=".$row['id'];
$queryresult1=mysql_query($sqlquery1)
or die("Invalid query: ".mysql_error());
if ($row1=mysql_fetch_array($queryresult1)) {
$filetype=$row1['filetype'];
$data=$row1['data'];
$filename=$imagepath."temp_".$i++.".".$filetype;
if (!$handle=fopen($filename,'wb')) {
die("Could not open $filename");
}
if (!fwrite($handle,$data)) {
die("Could not write $filename");
}
fclose($handle);
echo "<td><img src=images/".basename($filename)."></td>";
} else {
echo "<td>No image</td>";
}
.............
谢谢各位,上次忘了把html关了,造成大家阅读不便,再此感谢。
页:
[1]