1、上传、下载思路
一、上传思路
写上传页面
在form表单中加enctype=”multipart/form-data”属性,把表单提交方式设置为post
提交表单后,表单处理页面会生成$_FILES超级全局变量数组
用move_uploaded_file()函数 把上传文件移动到服务器的目标目录中
上传成功显示成功 失败显示失败
二、上传原理:客户端发送文件到服务器,服务器将文件放到临时目录,用move_uploaded_file()函数将文件放到服务器指定目录中
三、下载思路
在列表中点要下载的文件
到下载的php文件接收文件名
写入文件的类型
激活一个下载的窗口
读文件
//接收文件路径
$path = $_GET['path'];
$filename = substr($path,strrpos($path,"/")+1);
//文件类型
header('Content-type: image/pjpeg');
//激活一个下载的窗口 (文件名)
header("Content-Disposition: attachment; filename=$filename");
//读文件
readfile($path);
补充内容:
设置php配置文件中的指定,用于精细的调节php的文件上传功能。
file_uploads=on
确定服务器上的php脚本是否可以接受http文件上传
Memory_limit: 128M
设置脚本可以分配的最大内存量,防止失控的脚本独占服务器内存。
Upload_max_filesize:限制php处理上传文件大小的最大值 2M
Post_max_size:限制通过post方法可以接受信息的最大值。 8M
Upload_tmp_dir:上传文件存放的临时路径
$_FILES多维数组:用于存储各种与文件上传有关信息
$_FILES[‘myfile’][‘name’]:源文件名包括扩展名
$_FILES[‘myfile’][‘size’]:已上传文件的大小
$_FILES[‘myfile’][‘tmp_name’]:上传文件的临时文件名
$_FILES[‘myfile’][‘type’]:上传文件的类型
$_FILES[‘myfile’][‘error’]:伴随文件上传时产生的错误信息
0:没有任何错误
1:上传文件的大小超出了在php配置文件中Upload_max_filesize设置的最大值
2:表示上传文件大小超出了html表单中MAX__FILE__SIZE选项所指定的值
3:表示文件只被部分上传
4表示没有上载任何文件
文件上传的原理:
客户端将文件提交上传,服务器端先将文件移动到临时文件夹里,再移动到服务器端文件夹中
实现步骤:
① 设置表单,method必须是post方式,还要给表单加一个上传表示:enctype="multipart/form-data"
② 提交到服务器中去用一个全局数组来接收:$_FILES
$_FILES[‘myfile’][‘name’]:源文件名包括扩展名
$_FILES[‘myfile’][‘size’]:已上传文件的大小
$_FILES[‘myfile’][‘tmp_name’]:上传文件的临时文件名
$_FILES[‘myfile’][‘type’]:上传文件的类型
$_FILES[‘myfile’][‘error’]:伴随文件上传时产生的错误信息
③ 将文件从临时文件夹里移动到服务器端文件夹里
//获取临时文件所在的路径信息
$file_name=$_FILES['myfile']['tmp_name'];
//获取上传后的文件名
$path="./img/".$_FILES['myfile']['name'];
//移动文件 move_uploaded_file(临时文件夹的路径,服务器端文件夹)
if(move_uploaded_file($file_name,$path)){
echo "成功";
}else{
echo "失败";
}