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 相关文章推荐
简单易用的计数器(数据库)
Oct 09 PHP
php 变量定义方法
Jun 14 PHP
PHP 将图片按创建时间进行分类存储的实现代码
Jan 05 PHP
php foreach 参数强制类型转换的问题
Dec 10 PHP
新手学习PHP的一些基础知识分享
Jul 27 PHP
php代码中使用换行及(\n或\r\n和br)的应用
Feb 02 PHP
PHP 使用pcntl和libevent 实现Timer功能
Oct 27 PHP
PHP判断是否连接上网络的方法
Jul 01 PHP
php+ajax实现无刷新数据分页的办法
Nov 02 PHP
PHP递归遍历指定文件夹内的文件实现方法
Nov 15 PHP
php连接MSsql server的五种方法总结
Mar 04 PHP
YII2框架中actions的作用与使用方法示例
Mar 13 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
东方红 - 来复式再生机的修复
2021/03/02 无线电
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
Laravel利用gulp如何构建前端资源详解
2018/06/03 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
php中yii框架实例用法
2020/12/22 PHP
javaScript 读取和设置文档元素的样式属性
2009/04/14 Javascript
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
jquery链式操作的正确使用方法
2014/01/06 Javascript
JS基于Ajax实现的网页Loading效果代码
2015/10/27 Javascript
基于BootStrap的图片轮播效果展示实例代码
2016/05/23 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
angular ng-click防止重复提交实例
2017/06/16 Javascript
Three.js入门之hello world以及如何绘制线
2017/09/25 Javascript
使用bootstrap实现下拉框搜索功能的实例讲解
2018/08/10 Javascript
详解vue服务端渲染浏览器端缓存(keep-alive)
2018/10/12 Javascript
vue+高德地图写地图选址组件的方法
2019/05/18 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
Python实现的检测web服务器健康状况的小程序
2014/09/17 Python
python将字符串转换成数组的方法
2015/04/29 Python
TensorFLow用Saver保存和恢复变量
2018/03/10 Python
Python中偏函数用法示例
2018/06/07 Python
Sanic框架异常处理与中间件操作实例分析
2018/07/16 Python
Python子类继承父类构造函数详解
2019/02/19 Python
windows下python虚拟环境virtualenv安装和使用详解
2019/07/16 Python
html5在移动端的屏幕适应问题示例探讨
2014/06/15 HTML / CSS
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
先进个人获奖感言
2014/01/24 职场文书
恶搞卫生巾广告词
2014/03/18 职场文书
宣传活动总结范文
2014/07/01 职场文书
教师先进个人材料
2014/12/17 职场文书
刑事案件上诉状
2015/05/23 职场文书
中秋节主题班会
2015/08/14 职场文书
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
2021/03/31 Servers
浅谈node.js中间件有哪些类型
2021/04/29 Javascript