PHP code example of brenoroosevelt / cakephp-file-db

1. Go to this page and download the library: Download brenoroosevelt/cakephp-file-db library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

brenoroosevelt / cakephp-file-db example snippets


Plugin::load('FileDb');

  $this->addBehavior('FileDb.FileDatabase',[
            [
                'alias' => 'Foto',
                'type' => 'hasOne',
                'form_field' => 'file_foto' 		// campo usado no formulário
            ],
            [
	            'alias' => 'Documento',
	            'type' => 'hasOne',
	            'form_field' => 'file_documento'
            ],
             [
	            'alias' => 'Album',
	            'type' => 'hasMany',				// hasMany 
	            'form_field' => 'file_album'  
            ],
    ]);

   <?= $this->Form->create($aluno, ['enctype' => 'multipart/form-data']) 

	
	$aluno = $this->Alunos->get($id, [
            'contain' => ['Foto', 'Album', 'Documento' ]
    ]);

	public function download($id = null)
    {
    		
    	  // Considere usar um cache antes de fazer a consulta abaixo!
    		
        $aluno = $this->Alunos->get($id, [
            'contain' => ['Foto']
        ]);
    
        $file = $aluno->foto->file_content;
        $this->response->type($aluno->foto->file_type);
        $this->response->body(function () use ($file) {
            rewind($file);
            fpassthru($file);
            fclose($file);
        });
        
        $this->response->download($aluno->foto->file_name); // comente para não forçar o download
        return $this->response;
    }

	// file_id: id do arquivo!
	$this->Alunos->deleteFile($file_id);
	
	// id: do aluno, e tag = 'Foto' 
	$this->Alunos->deleteAllFiles($id, $tag=null)

		// use bytes(inteiro) ou '1MB' humanizado
        $validator->add('file_upload', 'file', [
        		'rule' => ['fileSize', [ '>', 1024 ]],
        		'message' =>'Arquivo deve ser maior que 1MB'
        ]);
        
        // limite o tamanho considerandosua regra E: memory_limit, post_max_size e upload_max_filesize
        $validator->add('file_upload', 'file', [
        		'rule' => ['fileSize', [ '<', '2MB' ]],
        		'message' =>'Arquivo deve ser menor que 2MB'
        ]);

		$validator->add('file_upload','create', [
               		'rule' => ['extension', ['png', 'pdf']],
               		'message' =>'Extensão inválida'
        ]);
		
		$validator->add('file_upload','create', [
				'rule' => ['mimeType', ['image/jpeg', 'image/png']],
				'message' =>'Tipo inválido',
		]);

		// Erro quando arquivo não pode ser enviado ao servidor, geralmente por causa de:
		//         memory_limit
		//         post_max_size
		//         upload_max_filesize
		$validator->add('file_upload', 'file', [
				'rule' => ['uploadError'],
				'message' =>'Erro ao enviar o arquivo',
				'last'=> true
		]);