利用
php+mysql 保存和输出文件
本地文件上传到服务器后,服务器的脚本对文件进行保存,一般有两种方式,一种
是作为
文件保存到机器的特定目录下,但是这里就有很多诸如文件重名带来的种种不便之
处,有的程
序自动改文件名字,把名字加上上传时间等方法以保证文件名的唯一性,这样
失去了文件的原
始名字,通过文件名查询特定的文件信息也有很多困难,不利于文件的统
一管理;一种是把文
件保存到数据库中利用数据库的强大功能,可以方便的实现文件的各
种操作。本文采用的是第二种方法。
这一组程序演示了,如何将硬盘的一个文件通过网页,上传到服务器的数据库里面,
并且
读出文件的内容。 使用说明: 一共有 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 可 以限制上载文件的大小。
//程序源码
<html>
<head>
<title>文件上传表单</title>
</head>
<body>
<table>
<form enctype='multipart/form-data' name='myform' action='submit.php'
method='post'>