上传、下载

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 "失败";

}




你可能感兴趣的:(上传文件,服务器,客户端)