hewb 发表于 2003-12-10 14:11:25

文件上传的脚本

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>
&lt;FORM METHOD=POST ACTION=""&gt;
请选择文件:<INPUT TYPE=FILE NAME="image" SIZE=40>
&lt;P&gt;
<INPUT TYPE="SUBMIT" NAME="OK" VALUE="OK">
<INPUT TYPE="RESET" NAME="RESET" VALUE="RESET">
&lt;/FORM&gt;
&lt;HR&gt;
</BODY>
&lt;/HTML&gt;

-----------------------------------------------------------------------------------
&lt;?
@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;
?&gt;
请高手看看有问题吗,谢谢!!

jiangtao9999 发表于 2003-12-10 17:21:48

应该是不行……

1、FORM 缺少一个参数,是哪个我忘了……
2、没看见有copy()函数,你想怎么复制文件?

请你重发一遍,用 包起来……

980501427 发表于 2003-12-11 01:36:50

你的脚本过程都正确了.语法问题自己找吧.PHP语法快忘完了. :)

我找到了原来写的一个上传到mysql数据库的一个脚本.可以实现文件的上传入库和读取输出(Under GNU/Linux).方法参考一下,具体到实际再根据你的情况自己改啦.

create table if not exists image&#40;
id      bigint&#40;20&#41; not null,
data            blob       not null,
filesize      bigint   not null,
filetype      char&#40;10&#41;,
memo            varchar&#40;255&#41;,
primary key &#40;id&#41;
&#41;;

节选一部分PHP,原文件比较长

............
&lt;form enctype=&quot;multipart/form-data&quot; action=&quot;xxxxx.php&quot; method=&quot;post&quot;&gt;
............
    &lt;tr&gt;
      &lt;td&gt;
      &lt;div align=&quot;right&quot;&gt;图象文件&lt;/div&gt;
      &lt;/td&gt;
      &lt;td&gt;
      &lt;input type=&quot;hidden&quot; name=&quot;MAX_FILE_SIZE&quot; value=&quot;3000000&quot;&gt;
      &lt;input type=&quot;file&quot; name=&quot;userfile&quot;&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
.............

下面是入库文件节选

.............
    if &#40;!&#40;empty&#40;$_FILES&#91;'userfile'&#93;&#91;'tmp_name'&#93;&#41;&#41;&#41; {
      $filename=$_FILES&#91;'userfile'&#93;&#91;'name'&#93;;
      $path_parts=pathinfo&#40;$filename&#41;;
      $filetype=$path_parts&#91;'extension'&#93;;
      $filename=$_FILES&#91;'userfile'&#93;&#91;'tmp_name'&#93;;
      $data=addslashes&#40;fread&#40;fopen&#40;&quot;$filename&quot;, &quot;r&quot;&#41;, filesize&#40;$filename&#41;&#41;&#41;;
      $sqlquery=&quot;insert into image &#40;id,data,filesize,filetype&#41; values &#40;&quot;.$id.&quot;,'$data',&quot;.filesize&#40;$filename&#41;.&quot;,'&quot;.$filetype.&quot;'&#41;&quot;;
      $queryresult=mysql_query&#40;$sqlquery&#41;
      or die&#40;&quot;Invalid query&#58; &quot;.mysql_error&#40;&#41;&#41;;
    }
.............

最后是取出了

.............
      $sqlquery1=&quot;select data,filetype from image where id=&quot;.$row&#91;'id'&#93;;
      $queryresult1=mysql_query&#40;$sqlquery1&#41;
      or die&#40;&quot;Invalid query&#58; &quot;.mysql_error&#40;&#41;&#41;;
      if &#40;$row1=mysql_fetch_array&#40;$queryresult1&#41;&#41; {
      $filetype=$row1&#91;'filetype'&#93;;
      $data=$row1&#91;'data'&#93;;
      $filename=$imagepath.&quot;temp_&quot;.$i++.&quot;.&quot;.$filetype;
            if &#40;!$handle=fopen&#40;$filename,'wb'&#41;&#41; {
            die&#40;&quot;Could not open $filename&quot;&#41;;
            }
            if &#40;!fwrite&#40;$handle,$data&#41;&#41; {
            die&#40;&quot;Could not write $filename&quot;&#41;;
            }
      fclose&#40;$handle&#41;;
      echo &quot;&lt;td&gt;&lt;img src=images/&quot;.basename&#40;$filename&#41;.&quot;&gt;&lt;/td&gt;&quot;;
      } else {
          echo &quot;&lt;td&gt;No image&lt;/td&gt;&quot;;
      }
.............

hewb 发表于 2003-12-11 13:35:12

谢谢各位,上次忘了把html关了,造成大家阅读不便,再此感谢。
页: [1]
查看完整版本: 文件上传的脚本