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


Posted in PHP onJuly 16, 2015

本文实例讲述了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 相关文章推荐
谈谈新手如何学习PHP
Dec 23 PHP
用PHP实现的随机广告显示代码
Jun 14 PHP
7个超级实用的PHP代码片段
Jul 11 PHP
解析php中memcache的应用
Jun 18 PHP
PHP set_error_handler()函数使用详解(示例)
Nov 12 PHP
php计划任务之ignore_user_abort函数实现方法
Jan 08 PHP
学习php设计模式 php实现享元模式(flyweight)
Dec 07 PHP
PHP foreach遍历多维数组实现方式
Nov 16 PHP
php四种定界符详解
Feb 16 PHP
php mysql数据库操作类(实例讲解)
Aug 06 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
Aug 05 PHP
PHP中isset、empty的用法与区别示例详解
Nov 05 PHP
PHP实现通过get方式识别用户发送邮件的方法
Jul 16 #PHP
php项目中百度 UEditor 简单安装调试和调用
Jul 15 #PHP
PHP开发Apache服务器配置
Jul 15 #PHP
ajax+php控制所有后台函数调用
Jul 15 #PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
Jul 15 #PHP
php实现网页缓存的工具类分享
Jul 14 #PHP
浅谈php错误提示及查错方法
Jul 14 #PHP
You might like
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
2011/05/29 PHP
学习php设计模式 php实现观察者模式(Observer)
2015/12/09 PHP
Redis在Laravel项目中的应用实例详解
2017/08/11 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
php中yii框架实例用法
2020/12/22 PHP
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
2009/07/25 Javascript
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
关于捕获用户何时点击window.onbeforeunload的取消事件
2011/03/06 Javascript
css配合jquery美化 select
2013/11/29 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
2014/01/14 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
走进AngularJs之过滤器(filter)详解
2017/02/17 Javascript
vue-router 路由基础的详解
2017/10/17 Javascript
JavaScript防止全局变量污染的方法总结
2018/08/02 Javascript
微信小程序scroll-view横向滑动嵌套for循环的示例代码
2018/09/20 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
微信小程序点击保存图片到本机功能
2019/12/13 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python制作花瓣网美女图片爬虫
2015/10/28 Python
python中PIL安装简单教程
2016/04/21 Python
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
2017/11/15 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
澳大利亚珠宝商:Shiels
2019/10/06 全球购物
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
SQL Server面试题
2016/10/17 面试题
施工材料员岗位职责
2014/02/12 职场文书
2014幼儿园中班工作总结
2014/11/10 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
经费申请报告范文
2015/05/18 职场文书