Giải pháp chuyển đổi số trọn gói cho doanh nghiệp Việt
-Ở phần trước mình đã giới thiệu với mọi người về Form Request rồi, nhưng đó mới chỉ là gửi nhận dữ liệu dưới dạng text/plain vậy còn gửi và nhận dữ liệu với file thì làm thế nào?
Hôm nay chúng ta sẽ cùng tìm hiểu nốt về upload file trong Laravel
-Đầu tiên mình cần tạo ra một view form có một input file và một input submit để thực hiện upload. (name: demo_upload.blade.php)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Demo Upload File - Toidicode.com</title>
<meta name="author" content="ThanhTai">
</head>
<body>
<form action="{{ url('file') }}" enctype="multipart/form-data" method="POST">
{{ csrf_field() }}
<input type="file" name="filesTest" required="true">
<br/>
<input type="submit" value="upload">
</form>
</body>
</html>
Tiếp theo chúng ta cần tạo một controller có tên: FileController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FileController extends Controller
{
public function index()
{
return view('demo_upload');
}
public function doUpload(Request $request)
{
//xử lý upload ở đây
}
}
- Cuối cùng là tạo route để điều hướng.
Route::get('file','FileController@index');
Route::post('file','Filecontroller@doUpload');
-Để cho dễ hiểu mình sẽ làm luôn VD đối với form ở trên.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FileController extends Controller
{
public function index()
{
return view('file');
}
public function doUpload(Request $request)
{
//Kiểm tra file
if ($request->hasFile('fileTest')) {
$file = $request->filesTest;
//Lấy Tên files
echo 'Tên Files: ' . $file->getClientOriginalName();
echo '<br/>';
//Lấy Đuôi File
echo 'Đuôi file: ' . $file->getClientOriginalExtension();
echo '<br/>';
//Lấy đường dẫn tạm thời của file
echo 'Đường dẫn tạm: ' . $file->getRealPath();
echo '<br/>';
//Lấy kích cỡ của file đơn vị tính theo bytes
echo 'Kích cỡ file: ' . $file->getSize();
echo '<br/>';
//Lấy kiểu file
echo 'Kiểu files: ' . $file->getMimeType();
}
}
}
-Sau khi đã tạo được View,Controller,route phục vụ cho việc upload file rồi, giờ chúng ta sẽ tiến hành xử lý upload file.
-Để upload files với Request thì Laravel có cung cấp cho chúng ta hàm move() sử dụng với 2 thông số truyền vào:
move($Location, $filesName)
Trong đó:
VD: Mình sẽ upload form ở VD trên vào thư mục uploads:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FileController extends Controller
{
public function index()
{
return view('file');
}
public function doUpload(Request $request)
{
$file = $request->filesTest;
$file->move('upload', $file->getClientOriginalName());
// hàm sẽ trả về đường dẫn mới của file trên server nếu thành công
// còn nếu không nó sẽ raise ra exception.
}
}
-Phần trên mình đã giới thiệu với mọi người về uploadfiles trong Laravel. Còn cách ràn buộc loại files, dung lượng files mình sẽ trình bày tiếp ở các phần sau.
Chúc các bạn học tốt!
Chưa có câu hỏi nào cho bài này.