欢迎访问宙启技术站
智能推送

文件上传与下载——PHP相关函数使用指南

发布时间:2023-06-12 06:08:12

文件上传和下载是网站开发中非常常见的操作,PHP提供了很多相关函数,方便开发人员进行文件上传和下载的操作。本文将对PHP相关函数进行介绍和使用指南。

文件上传

文件上传是指将本地文件上传到服务器,PHP中通过$_FILES变量获取上传的文件信息,以下是常用的上传函数。

1. move_uploaded_file()

move_uploaded_file(string $filename, string $destination): bool

移动上传的文件到指定目录

参数:

$filename:上传文件的临时文件名

$destination:目标文件路径

返回值:

成功返回true,失败返回false

举例:

if(move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/'.$_FILES['file']['name'])){
    echo '文件上传成功';
}else{
    echo '文件上传失败';
}

2. is_uploaded_file()

is_uploaded_file(string $filename): bool

判断文件是否是通过HTTP POST上传的

参数:

$filename:文件路径

返回值:

是返回true,不是返回false

3. getimagesize()

getimagesize(string $filename, array &$imageinfo = null): array|bool

获取图片文件的大小和其他信息

参数:

$filename:文件路径

$imageinfo:数组,存储图片的详细信息

返回值:

成功返回数组,失败返回false

举例:

$imageinfo = array();
if(getimagesize($_FILES['file']['tmp_name'], $imageinfo)){
    echo '图片大小为'.$imageinfo[0].'x'.$imageinfo[1];
}else{
    echo '获取图片信息失败';
}

4. filesize()

filesize(string $filename): int|false

获取文件大小

参数:

$filename:文件路径

返回值:

成功返回文件大小的整数值,失败返回false

举例:

echo '文件大小为'.filesize($_FILES['file']['tmp_name']).'字节';

文件下载

文件下载是指从服务器下载文件至本地,PHP提供了header函数和readfile函数用于文件下载,以下是一些常用的文件下载函数。

1. header()

header(string $header, bool $replace = true, int $http_response_code = null)

发送原始HTTP头至客户端,通常用于文件下载

参数:

$header:发送的HTTP头

$replace:是否替换之前的HTTP头

$http_response_code:HTTP响应码

举例:

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename=download.xls');
readfile('uploads/data.xls');

2. readfile()

readfile(string $filename, bool $use_include_path = false, resource $context = null): int|false

输出一个文件至输出缓冲区,通常用于文件下载

参数:

$filename:文件路径

$use_include_path:是否使用include_path

$context:上下文资源

返回值:

成功返回文件大小,失败返回false

举例:

$file = 'uploads/data.xls';
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename=download.xls');
header('Content-Length: ' . filesize($file));
readfile($file);

总结

PHP提供了很多方便的函数用于文件上传和下载,开发人员可以根据需求选择对应的函数进行操作。其中,move_uploaded_file和readfile函数是文件上传和下载中最为常用的函数,相信本文对开发人员进行了很好的指导。