How to upload files from a folder in php

PHPz
Release: 2023-04-04 15:40:01
Original
1110 people have browsed it

With the development of the Internet, network applications have become more and more popular. WEB applications have become a very popular application development model. The PHP language is a very excellent WEB programming language. With the development of the PHP language, PHP's functions are becoming more and more powerful. Among them, file upload is a very important function in the PHP language. In the development process of WEB applications written in PHP, the need for file upload often arises. This article will introduce how to use PHP to upload files from a folder. I hope it will be helpful to everyone.

1. What is file upload?

File upload refers to the process of transferring files on the local computer to a remote server. Uploaded files can be of various types, such as text files, image files, audio files, video files, etc. In WEB applications, it is usually necessary to implement the function of uploading files to the WEB server on the browser side to meet the needs of users to upload files.

2. How PHP implements file upload

PHP provides two ways to implement file upload:

  1. HTML form submission method

By adding an element of type "file" to the HTML form, the user can select a file on the local computer in the browser, and then upload the file to the WEB server through an HTTP request. PHP can obtain uploaded file information through the $_FILES array. The uploaded file will be saved to a temporary folder on the server side. You can use the move_uploaded_file function to transfer the file to the specified folder.

The code for uploading files using HTML form submission is as follows:

<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file" />
    <input type="submit" value="上传文件" />
</form>
Copy after login
<?php
if($_FILES["file"]["error"] > 0){
    echo "Error: " . $_FILES["file"]["error"] . "<br />";
} else {
    echo "上传文件名: " . $_FILES["file"]["name"] . "<br />";
    echo "文件类型: " . $_FILES["file"]["type"] . "<br />";
    echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "临时文件名: " . $_FILES["file"]["tmp_name"] . "<br />";
    if (file_exists("upload/" . $_FILES["file"]["name"])){
        echo $_FILES["file"]["name"] . " 文件已经存在。 ";
    } else {
        move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
        echo "文件存储在: " . "upload/" . $_FILES["file"]["name"];
    }
}
?>
Copy after login
  1. Using curl library to upload files

PHP’s curl extension library is a function A powerful network transmission library that supports common protocols such as HTTP, HTTPS, FTP, and SMTP. The main method to implement file upload through the curl library is to use the curl_setopt function to set relevant options, and then use the curl_exec function to send an HTTP request to the WEB server.

Before using curl to upload files, we need to install the curl extension. Under Linux systems, you can use the following command to install:

sudo apt-get install php-curl
Copy after login

Under Windows systems, you can enable curl extension in the php.ini file.

The code for using the curl library to implement file upload is as follows:

<?php
$file_name = &#39;test.png&#39;;
$file_path = &#39;/path/to/test.png&#39;;
$remote_url = &#39;http://example.com/upload.php&#39;;
$post_data = array(&#39;file&#39; => new CurlFile($file_path, 'image/png', $file_name));

$ch = curl_init($remote_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);

echo $result;
?>
Copy after login

3. How to implement folder upload in PHP

In actual development, sometimes it is necessary to implement folder upload file function. For example, the user needs to upload a directory containing multiple files instead of a single file. In this case, we need to go through the entire folder and upload the files one by one.

The method to implement folder uploading files is as follows:

<?php
$upload_dir = &#39;/path/to/upload/dir&#39;;
$dir = opendir($upload_dir);
while ($file = readdir($dir)) {
    if (($file != &#39;.&#39;) && ($file != &#39;..&#39;)) {
        if (is_dir($upload_dir . &#39;/&#39; . $file)) {
            // 如果是目录,则递归遍历
            upload_dir($upload_dir . &#39;/&#39; . $file);
        } else {
            // 如果是文件,则上传
            $remote_url = &#39;http://example.com/upload.php&#39;;
            $post_data = array(&#39;file&#39; => new CurlFile($upload_dir . '/' . $file, null, $file));

            $ch = curl_init($remote_url);
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            $result = curl_exec($ch);
            curl_close($ch);

            echo $result;
        }
    }
}
?>
Copy after login

The above code uses recursive method to traverse the files in the folder and upload them to the remote server one by one. In actual development, the code may need to be customized according to actual needs.

Summary

This article introduces two ways to implement file upload in PHP: HTML form submission method and curl library upload file method. At the same time, it also introduces how to implement the function of uploading files from a folder. I hope this article will be helpful to everyone. If you have any questions or errors, please correct me.

The above is the detailed content of How to upload files from a folder in php. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!