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/ */
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
]);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.