Hello, I'm using a simple file upload system with PHP and some problems will arise regarding the necessary permissions to use in ubuntu
This is the first time I'm using it, with the Webmin tool and I do not know what permissions to use, much less how to give them.
My upload code:
if ( isset( $_FILES[ 'anexo' ][ 'name' ] ) && $_FILES[ 'anexo' ][ 'error' ] == 0 ) {
// Pasta onde o arquivo vai ser salvo
$_UP['pasta'] = '/../../arquivos_subidos/';
// Tamanho máximo do arquivo (em Bytes)
$_UP['tamanho'] = 1024 * 1024 * 2; // 2Mb
// Array com as extensões permitidas
$_UP['extensoes'] = array('docx', 'pdf', 'xls', 'xlsx');
// Renomeia o arquivo? (Se true, o arquivo será salvo como (nome unico + .docx)
$_UP['renomeia'] = true;
// Array com os tipos de erros de upload do PHP
$_UP['erros'][0] = 'Não houve erro';
$_UP['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP';
$_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML';
$_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';
$_UP['erros'][4] = 'Não foi feito o upload do arquivo';
// Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro
if ($_FILES['anexo']['error'] != 0) {
return $templates->render->erro("Não foi possível fazer o upload, erro:" . $_UP['erros'][$_FILES['anexo']['error']]); // Para a execução do script
}
// Caso script chegue a esse ponto, não houve erro com o upload e o PHP pode continuar
// Faz a verificação da extensão do arquivo
$separaExtensao = explode('.', $_FILES['anexo']['name']);
$pegaUltimaExtensao = end($separaExtensao);
$extensao = strtolower($pegaUltimaExtensao);
if (array_search($extensao, $_UP['extensoes']) === false)
return $templates->render->erro("Por favor, envie arquivos com as seguintes extensões: docx, pdf ou xls");
// Faz a verificação do tamanho do arquivo
if ($_UP['tamanho'] < $_FILES['anexo']['size'])
return $templates->render->erro("O arquivo enviado é muito grande, envie arquivos de até 2Mb.");
// O arquivo passou em todas as verificações, hora de tentar movê-lo para a pasta
// Primeiro verifica se deve trocar o nome do arquivo
if ($_UP['renomeia'] == true) {
// Cria um nome baseado no UNIX TIMESTAMP atual
$nome_final = md5(time()."$@(DU@$#%%").".".$extensao;
} else {
// Mantém o nome original do arquivo
$nome_final = $_FILES['anexo']['name'];
}
// Depois verifica se é possível mover o arquivo para a pasta escolhida
if (move_uploaded_file($_FILES['anexo']['tmp_name'], $_UP['pasta'] . $nome_final)) {
return $templates->render->sucesso("O arquivo foi enviado com sucesso.");
} else {
// Não foi possível fazer o upload, provavelmente a pasta está incorreta
return $templates->render->erro("Não foi possivel fazer o upload do arquivo, tente novamente");
}
}
PHP returns me the following error:
Warning: move_uploaded_file (/../../_subbed files / 13d0bd5da89e48105287dfba2e773163.docx): failed to open stream: No such file or directory in /var/www/html/core/ajax/novaProposal.php on line 81
Warning: move_uploaded_file (): Unable to move '/ tmp / phpljFq6X' to '/../../followers/13d0bd5da89e48105287dfba2e773163.docx' in /var/www/html/core/ajax/novaProposal.php on line 81
My idea: uploaded files do not get where php runs, inside the / var / www folder I created a call "uploaded files", but I do not know how to configure the necessary permissions for the upload to be done successfully. p>
In the Windows environment this script works correctly.