PHP实现上传文件并存进数据库的方法

5年以前  |  阅读数:1007 次  |  编程语言:PHP 

本文实例讲述了PHP实现上传文件并存进数据库的方法。分享给大家供大家参考。具体如下:

show_add.php文件如下:


    <?php     
      if(!isset($_REQUEST['id']) or $_REQUEST['id']=="") die("error: id none");
      $id = $_REQUEST['id'];
      //定位记录,读出
      $conn=mysql_connect("localhost","root","admin");
      if(!$conn) die("error: mysql connect failed");
      mysql_select_db("nokiapaymentplat",$conn);
      $sql = "select * from receive where id=$id";
      $result = mysql_query($sql,$conn);
      if(!$result) die("error: mysql query");
      $num=mysql_num_rows($result);
      if($num<1) die("error: no this recorder");
      $data = mysql_result($result,0,"file_data");
      $type = mysql_result($result,0,"file_type");
      $name = mysql_result($result,0,"file_name");
      mysql_close($conn);
      //先输出相应的文件头,并且恢复原来的文件名
      header("Content-type:$type");
      header("Content-Disposition: attachment; filename=$name");
      echo $data;
    ?>

show_info.php文件如下:


    <?php 
       if(!isset($_REQUEST['id']) or $_REQUEST['id']=="") die("error: id none");
      $id = $_REQUEST['id'];
      //定位记录,读出
      $conn=mysql_connect("localhost","root","admin");
      if(!$conn) die("error: mysql connect failed");
      mysql_select_db("nokiapaymentplat",$conn);
      $sql = "select file_name ,file_size from receive where id=$id";
      $result = mysql_query($sql,$conn);
      if(!$result) die(" error: mysql query");
      //如果没有指定的记录,则报错
      $num=mysql_num_rows($result);
      if($num<1) die("error: no this recorder");
      //下面两句程序也可以这么写
      //$row=mysql_fetch_object($result);
      //$name=$row->name;
      //$size=$row->size;
      $name = mysql_result($result,0,"file_name");
      $size = mysql_result($result,0,"file_size");
      mysql_close($conn);
      echo "<hr>上传的文件的信息:";
      echo "<br>The file's name - $name";  
      echo "<br>The file's size - $size"; 
      echo "<br><a href=show_add.php?id=$id>附件</a>";
    ?>

submit.php文件如下:


    <?php  
      if(is_uploaded_file($_FILES['myfile']['tmp_name'])) {
      //有了上传文件了 
      $myfile=$_FILES["myfile"];
        //设置超时限制时间,缺省时间为 30秒,设置为0时为不限时
        $time_limit=60;     
        set_time_limit($time_limit); //
        //把文件内容读到字符串中
        $fp=fopen($myfile['tmp_name'], "rb");
        if(!$fp) die("file open error");
        $file_data = addslashes(fread($fp, filesize($myfile['tmp_name'])));
        fclose($fp);
        unlink($myfile['tmp_name']); 
        //文件格式,名字,大小
        $file_type=$myfile["type"];
        $file_name=$myfile["name"];
        $file_size=$myfile["size"];
        die($file_type);
        //连接数据库,把文件存到数据库中
        $conn=mysql_connect("localhost","root","admin");
        if(!$conn) die("error : mysql connect failed");
        mysql_select_db("nokiapaymentplat",$conn);
        $sql="insert into receive 
        (file_data,file_type,file_name,file_size) 
        values ('$file_data','$file_type','$file_name',$file_size)";
        $result=mysql_query($sql,$conn);
        //下面这句取出了刚才的insert语句的id
        $id=mysql_insert_id();
        mysql_close($conn);
        set_time_limit(30); //恢复缺省超时设置 
        echo "上传成功--- ";
        echo "<a href='show_info.php?id=$id'>显示上传文件信息</a>";
      }  
      else {  
        echo "你没有上传任何文件";  
      }  
    ?>

upload.php文件如下:




    <html>  
    <head>  
    <title>文件上传表单</title>  
    </head>  
    <body>  
    <table>  
    <form enctype='multipart/form-data' name='myform' action='submit.php' 
    method='post'>  
    <INPUT TYPE = "hidden" NAME = "MAX_FILE_SIZE" VALUE ="1000000">
    <tr><td>选择上传文件</td><td>
    <input name='myfile' type='file'></td></tr> 
    <tr><td colspan='2'><input name='submit' value='上传'  type='submit'></td></tr>  
    </table>  
    </body>  
    </html>

希望本文所述对大家的PHP程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例