PHP之文件上传

来源:互联网 发布:php商城开发视频教程 编辑:程序博客网 时间:2024/05/16 11:15

文件上传,其学习步骤如下:

①学习如何控制上传文件(配置php.ini文件)

②学习对上传文件判断(判断上传文件的格式、大小)

③学习执行文件上传操作的方法

1、开启文件上传功能

在php.ini中修改File_Uploads项的以下参数:

file_uploads:On服务器支持文件上传;

upload_tmp_dir:上传文件临时目录。在文件被成功上传之前,文件首先存放到服务器端的临时目录中。

upload_max_filesize:服务器允许上传文件大小的最大值,以MB为单位。系统默认为2MB。

在php.ini中还有其他几个选项会影响到文件的上传:

max_execution_time:PHP中一个指令所能执行的最大时间,单位是秒。该选项在上传超大文件时必须要修改,否则即使上传文件在服务器允许的范围内,但是超过了指令所能执行的最大时间,仍然无法实现上传。

memory_limit:PHP中一个指令所分配的内存空间。单位是MB。它的大小同样会影响到超大文件的上传。

2、全局变量$_FILES

对上传文件进行判断应用的是全局变量$_FILES,$_FILES是一个数组,它包含所有上传的文件信息。

  • $_FILES[filename]['name'] - 被上传文件的名称
  • $_FILES[filename]['type'] - 被上传文件的类型
  • $_FILES[filename]['size'] - 被上传文件的大小,以字节计
  • $_FILES[filename]['tmp_name'] - 存储在服务器的文件的临时副本的名称
  • $_FILES[filename]['error'] - 由文件上传导致的错误代码

3、将上传文件移动到指定目录

PHP中应用move_uploaded_file()函数实现文件上传。但是,在执行文件上传之前,为了防止潜在的攻击对原本不能通过脚本交互的文件进行非法管理,可以先应用is_uploaded_file()函数判断指定的文件是否是通过HTTP POST上传的,如果是返回TRUE,则可以继续执行文件的上传操作,否则将不能够继续执行。

<span style="font-size:18px;">bool is_uploaded_file( string filename)</span>

//filename必须指定类似于$_FILES['filename']['tmp_name']的变量,不可以使用从客户端上传的文件名$_FILES['filename']['name']。

<span style="font-size:18px;">bool move_uploaded_file( string filename, string destination)</span>

move_uploaded_file()将文件上传到服务器中指定的位置。其参数filename指定上传文件的临时文件名;destination指定文件上传后保存的新路径和名称。

4、文件下载技术

通过HTTP方式下载文件,其主要应用header()函数。

header()函数,属于HTTP函数。其作用是以HTTP协议将HTML文档的标头送到浏览器,并告诉浏览器具体怎么处理这个页面。

<span style="font-size:18px;">void header( string string [, bool replace [, int http_response_code]])</span>
通过HTTP下载的代码实例如下:
<span style="font-size:18px;"><?phpheader('Content-Type:image/jpg');//设置图片类型header('Content-Disposition:attachment;filename="test.jpg"');//描述下载文件,指定文件名称header('Content-Length'.filesize('test.jpg'));//定义下载文件大小readfile('test.jpg');//读取文件,执行下载?></span>



使用<a>标签只能实现压缩包的下载:如

<a href='test.rar'>压缩包下载</a>

//test.rar即是要下载的压缩包的路径



0 0
原创粉丝点击