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 Cake\Http\Middleware\CsrfProtectionMiddleware;

$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 Cake\View\Helper\FormHelper;

upload-cakephp4

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.

upload-cakephp41

Category:

Bình luận!

Xin lưu ý rằng tất cả các bình luận đều được kiểm duyệt theo chính sách bảo mật và tất cả các liên kết đều là nofollow. KHÔNG sử dụng từ khóa trong trường tên. Hãy để lại một cuộc trò chuyện cá nhân và ý nghĩa. *