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 01 PHP
深入eAccelerator与memcached的区别详解
Jun 06 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
Jul 19 PHP
php class类的用法详细总结
Oct 17 PHP
PHP中require和include路径问题详解
Dec 25 PHP
php文件上传简单实现方法
Jan 24 PHP
PHP实现页面静态化的超简单方法
Sep 06 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
Nov 01 PHP
thinkPHP中session()方法用法详解
Dec 08 PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
Jun 10 PHP
thinkPHP实现基于ajax的评论回复功能
Jun 22 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
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
2007/01/29 PHP
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
2011/07/12 PHP
YII使用url组件美化管理的方法
2015/12/28 PHP
PHP基于XMLWriter操作xml的方法分析
2017/07/17 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
2019/09/29 PHP
QUnit jQuery的TDD框架
2010/11/04 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
AngularJS基础 ng-href 指令用法
2016/08/01 Javascript
Bootstrap源码解读排版(1)
2016/12/23 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
2018/10/09 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
原生js实现弹幕效果
2020/11/29 Javascript
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
使用python获取CPU和内存信息的思路与实现(linux系统)
2014/01/03 Python
Python中pip安装非PyPI官网第三方库的方法
2015/06/02 Python
Python基于Tkinter实现的记事本实例
2015/06/17 Python
python dataframe 输出结果整行显示的方法
2018/06/14 Python
python定时关机小脚本
2018/06/20 Python
Python I/O与进程的详细讲解
2019/03/08 Python
python网络应用开发知识点浅析
2019/05/28 Python
python的一些加密方法及python 加密模块
2019/07/11 Python
python几种常用功能实现代码实例
2019/12/25 Python
python中数据库like模糊查询方式
2020/03/02 Python
对Pytorch 中的contiguous理解说明
2021/03/03 Python
html5新特性与用法大全
2018/09/13 HTML / CSS
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
高一历史教学反思
2014/01/13 职场文书
2015年全民国防教育日活动总结
2015/03/23 职场文书
综治目标管理责任书
2015/05/11 职场文书
朋友聚会开场白
2015/06/01 职场文书
学校2016年圣诞节活动总结
2016/03/31 职场文书
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python
JavaScript实现两个数组的交集
2022/03/25 Javascript