文件上传与下载——PHP相关函数使用指南
文件上传和下载是网站开发中非常常见的操作,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函数是文件上传和下载中最为常用的函数,相信本文对开发人员进行了很好的指导。
