Trong bài viết này chúng ta sẽ thực hành upload file trong Cakephp 4. Trước khi bắt tay vào thực hành bạn cần tham khảo qua bài viết Đọc, thêm, sửa, xóa trong Cakephp 4.
Bước 1: Tại config/route.php thêm
use CakeHttpMiddlewareCsrfProtectionMiddleware;
Và
$builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([ 'httpOnly' => true, ])); $builder->applyMiddleware('csrf'); $builder->connect('/upload', ['controller' => 'Articles', 'action' => 'upload']);
Bước 2: Tại ArticlesController.php
thêm
use CakeViewHelperFormHelper;
Và hàm upload()
public function upload(){ if ($this->request->is('post')) { $fileobject = $this->request->getData('submittedfile'); $uploadPath = '../uploads/'; $destination = $uploadPath.$fileobject->getClientFilename(); $fileobject->moveTo($destination); } }
Bước 3: Thêm tập tin upload.php
trong templates/Articles
<?php echo $this->Form->create(NULL, ['type' => 'file']); echo $this->Form->file('submittedfile'); echo $this->Form->button('Submit'); echo $this->Form->end(); $uploadPath ='../uploads/'; $files = scandir($uploadPath, 0); echo "Tập tin đã upload thành công:<br/>"; for($i = 2; $i < count($files); $i++) echo "File is - ".$files[$i]."<br>"; ?>
Bước 4: Tạo thư mục uploads
trong thư mục gốc tại http://localhost/cakephp
Cuối cùng truy cập vào URL http://localhost/cakephp/admin/upload để tiến hành upload.