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

利用PHP函数进行文件上传与下载操作

发布时间:2023-07-01 22:53:18

PHP提供了一系列函数用于实现文件上传和下载操作,可以通过这些函数来实现文件的上传和下载功能。

文件上传:

PHP提供了move_uploaded_file()函数用于将上传的文件移动到指定位置。

示例代码如下:

<?php
$target_dir = "uploads/"; // 文件上传目录
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); // 上传的文件路径
$uploadOk = 1; // 上传状态,默认为1

// 检查文件是否已经存在
if (file_exists($target_file)) {
    echo "文件已存在!";
    $uploadOk = 0;
}

// 检查文件大小限制
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "文件过大!";
    $uploadOk = 0;
}

// 检查文件格式
$allowed_extensions = array("jpg", "jpeg", "png", "gif");
$file_extension = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
if (!in_array($file_extension, $allowed_extensions)) {
    echo "不支持的文件格式!";
    $uploadOk = 0;
}

// 检查上传状态并移动文件
if ($uploadOk == 0) {
    echo "文件上传失败!";
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "文件上传成功!";
    } else {
        echo "文件上传失败!";
    }
}
?>

文件下载:

使用PHP的header()函数来设置响应头,然后通过readfile()函数读取文件内容并输出到浏览器。

示例代码如下:

<?php
$file = 'path/to/file.pdf'; // 要下载的文件路径
$filename = 'file.pdf'; // 下载时显示的文件名

// 设置响应头
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$filename\"");

// 读取文件并输出到浏览器
readfile($file);
?>

通过上述代码,我们可以实现文件的上传和下载功能。在文件上传过程中,我们可以检查文件是否已经存在、文件大小限制和文件格式等,确保上传的文件符合要求;在文件下载时,我们可以设置响应头并输出文件内容到浏览器,使用户能够下载该文件。