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(1)
Oct 09 PHP
php格式化工具Beautify PHP小小BUG
Apr 24 PHP
Optimizer与Debugger兼容性问题的解决方法
Dec 01 PHP
PHPMyadmin 配置文件详解(配置)
Dec 03 PHP
PHPMailer发送HTML内容、带附件的邮件实例
Jul 01 PHP
PHP简单实现“相关文章推荐”功能的方法
Jul 19 PHP
php判断输入是否是纯数字,英文,汉字的方法
Mar 05 PHP
PHP获取音频文件的相关信息
Jun 22 PHP
初识ThinkPHP控制器
Apr 07 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
May 18 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
Oct 18 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
May 02 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
解决jquery .ajax 在IE下卡死问题的解决方法
2009/10/26 Javascript
javascript生成大小写字母
2015/07/03 Javascript
每天一篇javascript学习小结(Boolean对象)
2015/11/12 Javascript
JQuery用户名校验的具体实现
2016/03/18 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
jQuery的事件预绑定
2016/12/05 Javascript
setTimeout学习小结
2017/02/08 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
Vue2 模板template的四种写法总结
2018/02/23 Javascript
vue之浏览器存储方法封装实例
2018/03/15 Javascript
Angular 数据请求的实现方法
2018/05/07 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
vue 全局环境切换问题
2019/10/27 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
原生js实现照片墙效果
2020/10/13 Javascript
Vue项目利用axios请求接口下载excel
2020/11/17 Vue.js
[01:56]《DOTA2》中文配音CG
2013/04/22 DOTA
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
Python标准模块--ContextManager上下文管理器的具体用法
2017/11/27 Python
Python 变量类型详解
2018/10/10 Python
python join方法使用详解
2019/07/30 Python
利用 Python ElementTree 生成 xml的实例
2020/03/06 Python
python属于哪种语言
2020/08/16 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
意大利自行车商店:Cingolani Bike Shop
2019/09/03 全球购物
自我评价如何写好?
2014/01/05 职场文书
中国梦的演讲稿
2014/01/08 职场文书
爷爷追悼会答谢词
2014/01/24 职场文书
活动倡议书范文
2014/05/13 职场文书
企业形象策划方案
2014/05/29 职场文书
小学语文国培研修日志
2015/11/13 职场文书
观看《筑梦中国》纪录片心得体会
2016/01/18 职场文书
护士工作心得体会
2016/01/25 职场文书
选购到合适的激光打印机
2022/04/21 数码科技