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&amp;mysql(一)
Oct 09 PHP
PHP Pear 安装及使用
Mar 19 PHP
php Smarty date_format [格式化时间日期]
Mar 15 PHP
Thinkphp多文件上传实现方法
Oct 31 PHP
PHP图像处理之imagecreate、imagedestroy函数介绍
Nov 19 PHP
学习php开源项目的源码指南
Dec 21 PHP
PHP跨平台获取服务器IP地址自定义函数分享
Dec 29 PHP
开启PHP的伪静态模式
Dec 31 PHP
thinkphp3.2实现上传图片的控制器方法
Apr 28 PHP
PHP数据库表操作的封装类及用法实例详解
Jul 12 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
Apr 07 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
Apr 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
《魔兽世界》惊魂幻象将获得调整
2020/03/08 其他游戏
兼容性最强的PHP生成缩略图的函数代码(修改版)
2011/01/18 PHP
crontab无法执行php的解决方法
2016/01/25 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
2020/03/02 PHP
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
jQuery写fadeTo示例代码
2014/02/21 Javascript
javascript闭包的理解
2015/04/01 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
微信小程序 地图(map)实例详解
2016/11/16 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
2016/12/08 Javascript
详解Angular5 路由传参的3种方法
2018/04/28 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
2019/09/04 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
python快速查找算法应用实例
2014/09/26 Python
Python实现简单字典树的方法
2016/04/29 Python
Python爬取三国演义的实现方法
2016/09/12 Python
Django跨域请求CSRF的方法示例
2018/11/11 Python
python绘制简单彩虹图
2018/11/19 Python
Python3将jpg转为pdf文件的方法示例
2019/12/13 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
2020/01/02 Python
html5中的input新属性range使用记录
2014/09/05 HTML / CSS
RetroStage德国:复古服装
2019/02/03 全球购物
一套C++笔试题面试题
2012/06/06 面试题
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
2013/02/17 面试题
介绍一下SOA和SOA的基本特征
2016/02/24 面试题
护士自我鉴定
2013/10/23 职场文书
路政管理毕业自荐书范文
2014/02/10 职场文书
写求职信有什么意义
2014/02/17 职场文书
2014年五一活动策划方案
2014/03/15 职场文书
ktv好的活动方案
2014/08/15 职场文书
作风建设整改方案
2014/10/27 职场文书
环卫处个人工作总结
2015/03/04 职场文书
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python