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

PHP文件上传和下载函数的使用方法详解

发布时间:2023-06-25 09:06:51

PHP语言是一个服务器端脚本语言,用于控制Web开发界面。它是一种高度模块化的语言,具有易于扩展的功能,因此在Web开发中,大量使用PHP语言开发。在Web开发中,经常需要上传和下载文件,因此PHP也提供了文件上传和下载的函数。

一、文件上传函数的使用方法

1.文件上传表单

在HTML表单中,需要添加一个<input type="file" name="file">的表单项来选择要上传的文件。在表单的action属性中,指定文件上传处理页面的地址。

<form action="upload.php">

 <input type="file" name="file">

 <input type="submit" value="上传">

</form>

2.PHP 文件上传函数

PHP 通过 $_FILES 超全局变量来接收通过 HTTP POST 传递的文件,$_FILES 变量是一个多维数组,提供了多个文件上传信息的属性。其中,$_FILES['name'] 属性保存了文件的原始文件名,$_FILES['tmp_name'] 属性保存了文件上传到服务器上的临时文件名,$_FILES['type'] 属性保存了文件的 MIME 类型,$_FILES['size'] 属性保存了文件大小。

PHP提供了move_uploaded_file()函数,用于将上传的文件从临时文件夹中移动到指定目录中。该函数的 个参数为临时文件名,第二个参数为目标文件名,如果函数成功返回 true,否则返回 false。

3. PHP 文件上传的完整代码

if ($_FILES['file']['error'] > 0) {

  echo '文件上传出错:' . $_FILES['file']['error'];

} else {

  $filename = $_FILES['file']['name'];  // 文件名

  $tmp_name = $_FILES['file']['tmp_name']; // 临时文件名

  $size = $_FILES['file']['size']; // 文件大小

  $type = $_FILES['file']['type']; // 文件类型

  $filedir = './uploads/';  // 文件上传的目录

  if (!is_dir($filedir)) {

    mkdir($filedir);

  }

  $target_file = $filedir . $filename;

  if (file_exists($target_file)) {

    echo '文件已存在';

  } else if (move_uploaded_file($tmp_name, $target_file)) {

    echo '文件上传成功';

  } else {

    echo '文件上传失败';

  }

}

二、文件下载函数的使用方法

1. PHP 文件下载函数

PHP 可以通过header()函数来设置 HTTP 响应头,实现文件下载。为了实现文件下载,首先要在响应头中添加Content-Disposition属性,用于设置文件名。例如,若要下载文件名为test.jpg的文件,需要在响应头中添加Content-Disposition属性,其属性值为attachment; filename="test.jpg",这表示要将文件作为附加内容下载,并且将文件名设置为test.jpg。

2. PHP 文件下载的完整代码

$file = './test.jpg';  // 要下载的文件 

if (!file_exists($file)) {

   echo '文件不存在';

   exit();

}

header('Content-Type: application/octet-stream');

header('Content-Disposition: attachment; filename="' . basename($file) . '"');

header('Content-Length: ' . filesize($file));

readfile($file);

三、总结

文件上传和下载是Web开发中常用的功能,PHP提供了丰富的函数对文件进行操作。文件上传需要添加表单,通过 $_FILES 超全局变量获取文件信息,并将文件从临时文件夹中移动到指定目录中。文件下载需要在响应头中添加 Content-Disposition 属性,用于设置文件名。在PHP中,使用header()函数设置响应头,使用readfile()函数读取文件内容并输出给客户端即可实现文件下载。