Upload file trong Laravel cực kì dễ. Tất cả những gì chúng ta cần làm là tạo một file view nơi mà người dùng có thể lựa chọn một file để tải lên và một controller nơi mà các file đã được tải lên sẽ được xử lý.
Trong một file view, chúng ta cần phải tạo một file đầu vào bằng cách thêm dòng code sau:
>>> Xem full Series về Laravel Framework <<<
1
|
Form::file(‘file_name’);
|
Trong Form::open(), ta phải thêm vào ‘files’=>’true’ như dưới đây. nó tạo điều kiện cho form được upload lên thành nhiều phần.
1
|
Form::open(array(‘url’ => ‘/uploadfile’,‘files’=>‘true’));
|
Ví dụ
Bước 1: Tạo một file view tên là resources/views/uploadfile.php và copy đoạn code sau vào file đó:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<span class=“tag”><html></span>
<span class=“tag”><body></span>
<span class=“pun”><?</span><span class=“pln”>php
echo </span><span class=“typ”>Form</span><span class=“pun”>::</span><span class=“pln”>open</span><span class=“pun”>(</span><span class=“pln”>array</span><span class=“pun”>(</span><span class=“str”>‘url’</span> <span class=“pun”>=></span> <span class=“str”>‘/uploadfile’</span><span class=“pun”>,</span><span class=“str”>‘files’</span><span class=“pun”>=></span><span class=“str”>‘true’</span><span class=“pun”>));</span><span class=“pln”>
echo </span><span class=“str”>‘Select the file to upload.’</span><span class=“pun”>;</span><span class=“pln”>
echo </span><span class=“typ”>Form</span><span class=“pun”>::</span><span class=“pln”>file</span><span class=“pun”>(</span><span class=“str”>‘image’</span><span class=“pun”>);</span><span class=“pln”>
echo </span><span class=“typ”>Form</span><span class=“pun”>::</span><span class=“pln”>submit</span><span class=“pun”>(</span><span class=“str”>‘Upload File’</span><span class=“pun”>);</span><span class=“pln”>
echo </span><span class=“typ”>Form</span><span class=“pun”>::</span><span class=“pln”>close</span><span class=“pun”>();</span>
<span class=“pun”>?></span>
<span class=“tag”></body></span>
<span class=“tag”></html></span>
|
Bước 2: Tạo một controller gọi là UploadFileController bằng lệnh sau:
1
|
php artisan make:controller UploadFileController —plain
|
Bước 3: kết quả của lệnh trên
Lời khuyên: Bạn nên học PHP tốt để có kiến thức nền tảng cho Laravel Framework.
Bước 4: Sao chép code sau vào file app/Http/Controllers/UploadFileController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
<span class=“pun”><?</span><span class=“pln”>php
</span><span class=“kwd”>namespace</span> <span class=“typ”>App</span><span class=“pln”>HttpControllers</span><span class=“pun”>;</span>
<span class=“kwd”>use</span> <span class=“typ”>Illuminate</span><span class=“pln”>HttpRequest</span><span class=“pun”>;</span>
<span class=“kwd”>use</span> <span class=“typ”>App</span><span class=“pln”>HttpRequests</span><span class=“pun”>;</span>
<span class=“kwd”>use</span> <span class=“typ”>App</span><span class=“pln”>HttpControllersController</span><span class=“pun”>;</span>
<span class=“kwd”>class</span> <span class=“typ”>UploadFileController</span> <span class=“kwd”>extends</span> <span class=“typ”>Controller</span> <span class=“pun”>{</span>
<span class=“kwd”>public</span> <span class=“kwd”>function</span><span class=“pln”> index</span><span class=“pun”>(){</span>
<span class=“kwd”>return</span><span class=“pln”> view</span><span class=“pun”>(</span><span class=“str”>‘uploadfile’</span><span class=“pun”>);</span>
<span class=“pun”>}</span>
<span class=“kwd”>public</span> <span class=“kwd”>function</span><span class=“pln”> showUploadFile</span><span class=“pun”>(</span><span class=“typ”>Request</span><span class=“pln”> $request</span><span class=“pun”>){</span><span class=“pln”>
$file </span><span class=“pun”>=</span><span class=“pln”> $request</span><span class=“pun”>–></span><span class=“pln”>file</span><span class=“pun”>(</span><span class=“str”>‘image’</span><span class=“pun”>);</span>
<span class=“com”>//Display File Name</span><span class=”pln”>
echo </span><span class=“str”>‘File Name: ‘</span><span class=“pun”>.</span><span class=“pln”>$file</span><span class=“pun”>–></span><span class=“pln”>getClientOriginalName</span><span class=“pun”>();</span><span class=“pln”>
echo </span><span class=“str”>‘<br>’</span><span class=“pun”>;</span>
<span class=“com”>//Display File Extension</span><span class=”pln”>
echo </span><span class=“str”>‘File Extension: ‘</span><span class=“pun”>.</span><span class=“pln”>$file</span><span class=“pun”>–></span><span class=“pln”>getClientOriginalExtension</span><span class=“pun”>();</span><span class=“pln”>
echo </span><span class=“str”>‘<br>’</span><span class=“pun”>;</span>
<span class=“com”>//Display File Real Path</span><span class=”pln”>
echo </span><span class=“str”>‘File Real Path: ‘</span><span class=“pun”>.</span><span class=“pln”>$file</span><span class=“pun”>–></span><span class=“pln”>getRealPath</span><span class=“pun”>();</span><span class=“pln”>
echo </span><span class=“str”>‘<br>’</span><span class=“pun”>;</span>
<span class=“com”>//Display File Size</span><span class=”pln”>
echo </span><span class=“str”>‘File Size: ‘</span><span class=“pun”>.</span><span class=“pln”>$file</span><span class=“pun”>–></span><span class=“pln”>getSize</span><span class=“pun”>();</span><span class=“pln”>
echo </span><span class=“str”>‘<br>’</span><span class=“pun”>;</span>
<span class=“com”>//Display File Mime Type</span><span class=”pln”>
echo </span><span class=“str”>‘File Mime Type: ‘</span><span class=“pun”>.</span><span class=“pln”>$file</span><span class=“pun”>–></span><span class=“pln”>getMimeType</span><span class=“pun”>();</span>
<span class=“com”>//Move Uploaded File</span><span class=”pln”>
$destinationPath </span><span class=“pun”>=</span> <span class=“str”>‘uploads’</span><span class=“pun”>;</span><span class=“pln”>
$file</span><span class=“pun”>–></span><span class=“pln”>move</span><span class=“pun”>(</span><span class=“pln”>$destinationPath</span><span class=“pun”>,</span><span class=“pln”>$file</span><span class=“pun”>–></span><span class=“pln”>getClientOriginalName</span><span class=“pun”>());</span>
<span class=“pun”>}</span>
<span class=“pun”>}</span>
|
Bước 5: Thêm dòng sau vào app/Http/routes.php.
1
2
|
Route::get(‘/uploadfile’,‘UploadFileController@index’);
Route::post(‘/uploadfile’,‘UploadFileController@showUploadFile’);
|
Bước 6: Vào URL sau để test chức năng upload
http://localhost:8000/uploadfile
Bước 7: Bạn sẽ nhận được kết quả sau: