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 冒泡排序算法的实现代码
Aug 08 PHP
php实现无限级分类实现代码(递归方法)
Jan 01 PHP
php生成局部唯一识别码LUID的代码
Oct 06 PHP
使用PHP实现蜘蛛访问日志统计
Jul 05 PHP
PHP中HTML标签过滤技巧
Jan 07 PHP
PHP字符串的递增和递减示例介绍
Feb 11 PHP
php中实现xml与mysql数据相互转换的方法
Dec 25 PHP
简单谈谈php中的unicode和utf8编码
Jun 10 PHP
android上传图片到PHP的过程详解
Aug 03 PHP
php数据访问之查询关键字
May 09 PHP
thinkPHP自动验证机制详解
Dec 05 PHP
Yii 2.0在Grid中格式化时间方法示例
Jun 06 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
我的论坛源代码(十)
2006/10/09 PHP
解析php中call_user_func_array的作用
2013/06/07 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
EXT窗口Window及对话框MessageBox
2011/01/27 Javascript
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
jquery 卷帘效果实现代码(不同方向)
2013/02/05 Javascript
JS+CSS设置img在DIV中只显示Img垂直居中的部分
2013/10/24 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
chrome下img加载对height()的影响示例探讨
2014/05/26 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
如何高效率去掉js数组中的重复项
2016/04/12 Javascript
jQuery选择器实例应用
2017/01/05 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
使用express搭建一个简单的查询服务器的方法
2018/02/09 Javascript
使用D3.js+Vue实现一个简单的柱形图
2018/08/05 Javascript
微信公众平台 客服接口发消息的实现代码(Java接口开发)
2019/04/17 Javascript
怎么使用javascript深度拷贝一个数组
2019/06/06 Javascript
vue中使用router全局守卫实现页面拦截的示例
2020/10/23 Javascript
[46:55]完美世界DOTA2联赛决赛 FTD vs Phoenix 第三场 11.08
2020/11/11 DOTA
python中字符串比较使用is、==和cmp()总结
2018/03/18 Python
利用python如何处理nc数据详解
2018/05/23 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
2019/06/11 Python
Python numpy大矩阵运算内存不足如何解决
2020/11/19 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
升职自荐书范文
2013/11/28 职场文书
学习党章思想汇报
2014/01/07 职场文书
致跳远运动员加油稿
2014/02/11 职场文书
彩妆大赛策划方案
2014/05/13 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
Vue过滤器(filter)实现及应用场景详解
2021/06/15 Vue.js
SpringCloud的JPA连接PostgreSql的教程
2021/06/26 Java/Android
SpringBoot整合JWT的入门指南
2021/06/29 Java/Android
python APScheduler执行定时任务介绍
2022/04/19 Python
MySQL一劳永逸永久支持输入中文的方法实例
2022/08/05 MySQL