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 相关文章推荐
PHP5 安装方法
Jan 15 PHP
利用static实现表格的颜色隔行显示的代码
Sep 02 PHP
轻松修复Discuz!数据库
May 03 PHP
PHP 缓存实现代码及详细注释
May 16 PHP
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
Dec 01 PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
Sep 07 PHP
php读取mysql中文数据出现乱码的解决方法
Aug 16 PHP
php实现图片添加水印功能
Feb 13 PHP
PHP框架Swoole定时器Timer特性分析
Aug 19 PHP
php限制ip地址范围的方法
Mar 31 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
Aug 12 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 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
php header Content-Type类型小结
2011/07/03 PHP
解析strtr函数的效率问题
2013/06/26 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
2014/01/22 PHP
php使用google地图应用实例
2014/12/31 PHP
将PHP的session数据存储到数据库中的代码实例
2016/06/24 PHP
分析PHP中单双引号的误区和双引号小隐患
2016/07/19 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
2017/06/09 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
JS中剪贴板兼容性、判断复制成功或失败
2021/03/09 Javascript
用jQuery技术实现Tab页界面之二
2009/09/21 Javascript
javascript定时保存表单数据的代码
2011/03/17 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
面向切面编程(AOP)的理解
2015/05/01 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
js入门之Function函数的使用方法【新手必看】
2016/11/22 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
2018/05/08 Javascript
webpack4 css打包压缩问题的解决
2018/05/18 Javascript
vue cli安装使用less的教程详解
2019/07/12 Javascript
layui.tree组件的使用以及搜索节点功能的实现
2019/09/26 Javascript
[02:34]2016完美“圣”典风云人物:BurNIng专访
2016/12/10 DOTA
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
python正则表达式判断字符串是否是全部小写示例
2013/12/25 Python
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
Python选课系统开发程序
2016/09/02 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
浅谈python3发送post请求参数为空的情况
2018/12/28 Python
K近邻法(KNN)相关知识总结以及如何用python实现
2021/01/28 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
2014年五四青年节演讲稿范文
2014/04/22 职场文书
2015年销售助理工作总结
2015/05/11 职场文书
2015学校年度工作总结
2015/05/11 职场文书
python中pandas对多列进行分组统计的实现
2021/06/18 Python
优化Mysql查询的示例
2022/04/26 MySQL