All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
动态网页制作技术PHP常用的正则表达式_[PHP教程]
PHP和AJAX创建的RSS聚合器_[PHP教程]
网页特效:图片随机显示实例详解_JavaScript技术_编程技术
基于PHP的AJAX技术实现文件异步上传_[PHP教程]
ASP.NET,2.0无刷新页面新境界_[Asp.Net教程]
在C#中调用视图
ASP.NET,2.0打造购物车和支付系统之一_[Asp.Net教程]
浅谈PHP开发团队的管理之道_php资料_编程技术
在PHP中执行系统外部命令_[PHP教程]
SQL大全[1]_mssql学习_编程技术
Reading number is top 10 pictures
清纯性感的美眉2
Black and white also sexy--YanLiu1
青春清纯美女大集合2
Sora aoi in China3
Chinese paper-cut grilles art appreciation7
美丽的桂林风光2
中国女孩大胆自拍,显露完美身材2
人造器官和铁肺人
漂亮脸蛋魔鬼身材1
So beauty, will let you spray blood3
Download software ranking
C#COM编程指南
虚拟机5.5.3版
Tram sex maniac 2 (H) rar bag5
卡丁车单机版
SP4 for SQL2000
Red cliff
电脑知识及技巧大合集
WebService在.NET中的实战应用教学视频 → 第4集
传奇私服架设教程
linux高级编程
aaa published in(发表于) 2013/12/24 5:54:00 Edit(编辑)
如何利用PHP+MYSQL保存和输出文件_php资料_编程技术

如何利用PHP+MYSQL保存和输出文件_php资料_编程技术

如何利用PHP+MYSQL保存和输出文件_php资料_编程技术-你的首页-uuhomepage.com

本地文件上传到服务器后,服务器的脚本对文件进行保存,一般有两种方式,一种是作为文件保存到机器的特定目录下,但是这里就有很多诸如文件重名带来的种种不便之处,有的程序自动改文件名字,把名字加上上传时间等方法以保证文件名的唯一性,这样失去了文件的原始名字,通过文件名查询特定的文件信息也有很多困难,不利于文件的统一管理;一种是把文件保存到数据库中利用数据库的强大功能,可以方便的实现文件的各种操作。本文采用的是第二种方法。

这一组程序演示了,如何将硬盘的一个文件通过网页,上传到服务器的数据库里面,并且读出文件的内容。

使用说明:

一共有5个程序,说明如下:
1. file.sql --- 本程序要用到的数据库表的结构[注:数据库用的是test]
2. upload.php --- 上传表单
3. submit.php --- 上传处理程序
4. show_info.php --- 显示部分上传的文件信息
5. show_add.php --- 显示[下载]文件

///////////////////////////////////////////////////

(1)file.sql ---

//简要说明
保存上传得文件的基本信息的数据库结构,此处注意保存文件内容的字段,使用longtext类型因为普通的blob类型最大存储64K字节。另外,一般php的默认配置最大上传文件为2M,如果上传的文件特别大,莫忘了调整php.ini的设置哦。
//文件源码

create table receive(
id int NOT NULL auto_increment, #主键,自动累加
file_data longblob, #文件内容
file_type varchar(100), #文件类型
file_name varchar(255), #文件名字
file_size int, #文件大小
PRIMARY KEY(id) #主键
)

//////////////////////////////////////////////////////////////////////

(2)upload.php ---

//简要说明
上传界面,用户选择文件,然后提交给submit.php处理值得注意的是一个 MAX_FILE_SIZE的隐藏值域,通过设置其VALUE可以限制上载文件的大小。
//程序源码







method='post'>









选择上传文件
type='submit'>



//////////////////////////////////////////////////////////////////////

(3)submit.php ---

//简要说明
把用户上传得文件连同文件的基本信息保存到数据库里
//程序源码

if($myfile != "none" && $myfile != "") { //有了上传文件了
//设置超时限制时间,缺省时间为 30秒,设置为0时为不限时
$time_limit=60;
set_time_limit($time_limit); //
//把文件内容读到字符串中
$fp=fopen($myfile, "rb");
if(!$fp) die("file open error");
$file_data = addslashes(fread($fp, filesize($myfile)));
fclose($fp);
unlink($myfile);
//文件格式,名字,大小
$file_type=$myfile_type;
$file_name=$myfile_name;
$file_size=$myfile_size;
//连接数据库,把文件存到数据库中
$conn=mysql_connect("127.0.0.1","***","***");
if(!$conn) die("error : mysql connect failed");
mysql_select_db("test",$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);
//下面这句取出了刚才的insert语句的id
$id=mysql_insert_id();
mysql_close($conn);
set_time_limit(30); //恢复缺省超时设置
echo "上传成功--- ";
echo "显示上传文件信息";
}
else {
echo "你没有上传任何文件";
}
?>

//////////////////////////////////////////////////////////////////////

(4)show_info.php ---

//简要说明
从数据库里取出文件的基本信息[文件名和文件大小]。
//程序源码

if(!isset($id) or $id=="") die("error: id none");
//定位记录,读出
$conn=mysql_connect("127.0.0.1","***","***");
if(!$conn) die("error: mysql connect failed");
mysql_select_db("test",$conn);
$sql = "select file_name ,file_size from receive where id=$id";
$result = mysql_query($sql);
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 "



上传的文件的信息:";
echo "
The file's name - $name";
echo "
The file's size - $size";
echo "
附件";
?>

//////////////////////////////////////////////////////////////////////

(5)show_add.php ---

//简要说明
从数据库里取出文件内容
//程序源码

if(!isset($id) or $id=="") die("error: id none");
//定位记录,读出
$conn=mysql_connect("127.0.0.1","***","***");
if(!$conn) die("error : mysql connect failed");
mysql_select_db("test",$conn);
$sql = "select * from receive where id=$id";
$result = mysql_query($sql);
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;
?>

本程序在 win2000 pro apache 1.13.19 php 4.0.5 mysql 3.23.36 下通过。





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.