Home  >  Article  >  PHP Framework  >  laravel multiple file upload process

laravel multiple file upload process

PHPz
PHPzOriginal
2023-04-23 09:18:43136browse

Laravel is a popular PHP framework that provides convenient file upload functionality, allowing users to upload multiple files. This article will introduce the process of multi-file upload in Laravel.

1. Configure routing

In Laravel, file uploads usually submit forms through POST requests. Uploaded files will be sent to the specified path on the server, such as /upload. In order for Laravel to handle uploaded files, we need to define a route in the routes/web.php file as follows:

<code>Route::post('/upload', 'FileController@upload');</code>

This route sends the POST request to / upload path and pass it to the upload method in the controller named FileController.

2. Create a controller

Create a controller named FileController and write the upload method in it. This method will handle the uploaded files:

<code>public function upload(Request $request)
{
    $files = $request->file('file');
    foreach ($files as $file) {
        $fileName = time() . '-' . $file->getClientOriginalName();
        $file->move(public_path('uploads'), $fileName);
    }
}</code>

In this method, we first get the uploaded files and iterate over them. For each file, we use the getClientOriginalName method to get its original file name, combine it with the current timestamp into a new file name, and then use the move method to save it on the server. Under the public uploads directory.

Note that Laravel will automatically verify whether the file meets the requirements (size, type, etc.). If the uploaded file does not meet the requirements, Laravel will throw a ValidationException exception.

3. Configure the form

Now we need to create a form in the view to allow users to upload files. In this example, we will create the form in the resources/views/upload.blade.php file:

<code><form method="POST" action="/upload" enctype="multipart/form-data">
    @csrf
    <input type="file" name="file[]" multiple>
    <button type="submit">上传文件</button>
</form></code>

First, we define a POST method to send the form data to /uploadAddress. Since we need to upload multiple files, we use the multiple attribute to set the <input> element to multiple selection. Additionally, we need to add the enctype="multipart/form-data" attribute to the form to ensure the file is properly encoded and transferred via POST request.

4. Test the upload function

Now that we have completed the configuration and implementation of the upload function, we can test whether the file can be successfully uploaded. We can access the /upload path and upload multiple files. After the upload is completed, we can check whether our file has been saved in the uploads directory of the server.

Summary

Through the above steps, we have successfully configured Laravel's multi-file upload function. To upload multiple files we need to use an array type form element and use a loop in the controller to process each uploaded file. We also learned how to configure Laravel routes and forms to handle file uploads.

The above is the detailed content of laravel multiple file upload process. 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