Home  >  Article  >  Backend Development  >  How to implement file upload and download in PHP back-end function development?

How to implement file upload and download in PHP back-end function development?

WBOY
WBOYOriginal
2023-08-05 19:25:49862browse

How to implement file upload and download in PHP back-end function development?

In web development, file upload and download are very common functions. Whether users upload images, documents or download files, back-end code is required to process them. This article will introduce how to implement file upload and download functions on the PHP backend, and attach specific code examples.

1. File upload

File upload refers to transferring files from the local computer to the server. PHP provides a wealth of functions and classes to implement file upload functions.

  1. Create HTML form

First, create a form in HTML for users to select files to upload. You can create a file selection button using the input element's type attribute as file.

<form action="upload.php" method="post" enctype="multipart/form-data">
  <input type="file" name="file">
  <input type="submit" value="上传">
</form>
  1. Create the upload.php file

Next, we need to create a PHP file to handle the upload request. In the upload.php file, we can use the $_FILES superglobal variable to obtain uploaded file information.

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  $file = $_FILES['file'];

  // 获取文件名
  $filename = $file['name'];
  
  // 获取文件临时路径
  $tmp_path = $file['tmp_name'];

  // 指定文件保存的路径
  $save_path = 'uploads/' . $filename;

  // 将文件从临时路径移动到指定路径
  move_uploaded_file($tmp_path, $save_path);

  echo '文件上传成功!';
}
?>

In the upload.php file, we first obtain the uploaded file information through $_FILES['file']. We can then use the move_uploaded_file function to move the file from the temporary path to the specified path. Finally, we can give the user a feedback telling them that the file upload was successful.

  1. Create file saving directory

In the above code example, we saved the uploaded file in a folder named "uploads". Before creating the upload.php file, we need to ensure that the folder already exists, otherwise the file cannot be saved.

<?php
if (!file_exists('uploads')) {
  mkdir('uploads', 0777, true);
}
?>

The above code can be used to check whether the folder named "uploads" exists. If it does not exist, you can use the mkdir function to create the folder.

2. File download

File download refers to downloading files on the server to the local computer. PHP implements file downloading through the header function.

  1. Create the download.php file

In the download.php file, we need to obtain the path of the file to be downloaded and set the corresponding download header information through the header function.

<?php
$file_path = 'files/document.pdf';

if (file_exists($file_path)) {
  header('Content-Description: File Transfer');
  header('Content-Type: application/octet-stream');
  header('Content-Disposition: attachment; filename=' . basename($file_path));
  header('Content-Length: ' . filesize($file_path));
  header('Pragma: public');
  header('Expires: 0');
  readfile($file_path);
  exit;
} else {
  die('文件不存在!');
}
?>

In the above code example, we set the Content-Disposition header information to attachment through the header function and set the file name to be downloaded. Then, we use the readfile function to read the file content and output it to the user.

  1. Create a downloadable file

In the download.php file, we specify a file named "files/document.pdf" for users to download. Before creating the download.php file, we need to ensure that the file already exists, otherwise the file cannot be downloaded.

3. Summary

Through the introduction of this article, we have learned how to implement file upload and download functions on the PHP backend. File upload requires obtaining the uploaded file information through the $_FILES superglobal variable, and using the move_uploaded_file function to move the file from the temporary path to the specified path. When downloading a file, you can set the corresponding download header information through the header function, and use the readfile function to output the file content to the user. The above code examples can be used as a reference, and developers can make personalized modifications and improvements according to actual needs. Hope this article is helpful to you!

The above is the detailed content of How to implement file upload and download in PHP back-end function development?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn