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 文件缓存函数
Oct 08 PHP
PHP file_exists问题杂谈
May 07 PHP
php根据操作系统转换文件名大小写的方法
Feb 24 PHP
从PHP的源码中深入了解stdClass类
Apr 18 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
Nov 19 PHP
smarty内部日期函数html_select_date()用法实例分析
Jul 08 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
Nov 05 PHP
php微信浏览器分享设置以及回调详解
Aug 01 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
Oct 08 PHP
PHP简单实现遍历目录下特定文件的方法小结
May 22 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
Feb 14 PHP
浅谈laravel框架与thinkPHP框架的区别
Oct 23 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 PDO数据库操作预处理与注意事项
2019/03/16 PHP
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
js单例模式详解实例
2013/11/21 Javascript
JavaScript判断变量是对象还是数组的方法
2014/08/28 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
javascript中call apply 的应用场景
2015/04/16 Javascript
基于Javascript实现二级联动菜单效果
2016/03/04 Javascript
微信小程序 页面跳转传递值几种方法详解
2017/01/12 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
JavaScript和jQuery制作光棒效果
2017/02/24 Javascript
Javasript设计模式之链式调用详解
2018/04/26 Javascript
Nuxt.js实战和配置详解
2019/08/05 Javascript
JavaScript实现随机点名程序
2020/03/25 Javascript
Node.js API详解之 module模块用法实例分析
2020/05/13 Javascript
vue 修改 data 数据问题并实时显示操作
2020/09/07 Javascript
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
[01:13:59]LGD vs Mineski Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
python一键升级所有pip package的方法
2017/01/16 Python
浅谈五大Python Web框架
2017/03/20 Python
Python3 XML 获取雅虎天气的实现方法
2018/02/01 Python
分析经典Python开发工程师面试题
2019/04/08 Python
python实现飞机大战游戏
2020/10/26 Python
python命令行工具Click快速掌握
2019/07/04 Python
python函数参数(必须参数、可变参数、关键字参数)
2019/08/16 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
巴西最大的家电和百货零售商:Casas Bahia
2016/11/22 全球购物
茵宝(Umbro)英国官方商店:英国足球服装生产商
2016/12/29 全球购物
新加坡领先的时尚生活方式零售品牌:CHARLES & KEITH
2018/01/16 全球购物
地理科学专业毕业生求职信
2013/10/15 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
推普周活动总结
2014/08/28 职场文书
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
观后感的写法
2015/06/19 职场文书
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
2021/06/05 Python
Java异常处理try catch的基本用法
2021/12/06 Java/Android