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 /upload
Address. 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!