相关文章推荐
PHP文件的上传与下载

PHP文件的上传与下载

今天给大家介绍的是PHP文件的上传与下载,分为两部分,第一部分:文件的上传,第二部分:文件的下载;

一.文件的上传

原理:将客户端的文件上传到服务器端,在将服务器端的临时文件移动到指定目录即可。

客户端:准备一个表单页面,表单的发送方式为post,并且添加enctype="multipart/form-data",记住:发送方式一定为post,并且form里面一定要添加enctype="multipart/form-data",两者缺一不可。

以下为客户端的简单实现代码:


服务器:用PHP预定义变量$_FILES来接收传过来文件,以下为客户端接收页面的截图:

$_FILES变量解析,以下为截图:


数组解析:myfile为表单提交页面自定义的name;name为上传文件的名字;type为上传文件的原始名称;tmp_name为上传文件的临时保存文件的位置;error为上传文件的错误信息;size为上传文件的大小;

服务端保存文件的两种方式:

第一种:通过move_uploaded_file($tmp_name,$filename)函数实现,以下为截图:


第二种:通过copy()函数实现,以下为截图:

文件上传常规配置解析,这些配置选项都在php.ini文件中,以下为截图:


文件上传的其他配置解析,以下为截图:


上传文件错误信息说明,以下为截图:


客户端上传文件限制,以下为截图:


服务器端上传文件限制(单文件上传实例):以下为截图:


二.文件的下载

文件的下载一种是可以通过表单的超链接方式实现,这个主要是实现浏览器不识别的文件类型,例如:


对于一些浏览器识别的文件,比如图片,视频来说就要通过PHP代码来实现了,以下为实现过程:

上面的这种方式虽然实现了文件的下载,但是也是有他的缺陷性的,比如不能批量下载,而且下载完之后浏览器的页面会跳转,严重影响我们的业务,下面的这种方式就解决了这个问题。

<?php
*@params string $url 要下载的文件地址
*@params string $filePath 要保存的文件位置
function downFile($url,$filePath){
   if($url=='' || $url==NULL){
         return "下载地址不能为空";
   $ext_name = strrchr($url,'.');//获取文件的扩展名
   ob_start();//打开输出缓冲区,所有的输出信息不在发送给浏览器,保存在缓冲区
   readfile($url);//将文件写入到缓冲区
   $file_data = ob_get_contents();//获取缓冲区文件内容,内容为二进制
 
推荐文章