Mudanças entre as edições de "Exemplo de upload de arquivos com aplicativo PHP"
(Criou página com ' File:Nodepromo-2021.jpg ---- == Antes de começar == As orienta...') |
Edição das 02h12min de 22 de agosto de 2023
Índice |
Antes de começar
As orientações contidas neste tutorial exigem conhecimento do desenvolvedor responsável, no qual é fornecido como uma referencia para ser utilizado e adaptado conforme necessidade. Ressaltamos que o tutorial foi testado e funcional 100%.
O suporte da Integrator é totalmente isento as informações contidas no tutorial, no qual envolve programação e conhecimento de um desenvolvedor especializado.
Sobre o tutorial
O exemplo disponibilizado é de um simples aplicativo PHP, no qual realiza upload de imagens para um diretorio dentro do usuario cPanel,com intuito de mostrar o funcionamento de upload através de aplicativos PHP nos servidores da Integrator.
Para baixar o exemplo completo, Clique Aqui.
O arquivo index.php
O arquivo index.php possui o código apresentado na listagem abaixo, onde é gerado um token e botões com função de upload e de seleção de imagem.
<?php session_start(); // Gerar CSRF token $token = bin2hex(random_bytes(32)); $_SESSION['csrf_token'] = $token; ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Upload de Imagens com CSRF Protection</title> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> Selecione uma imagem para fazer o upload: <input type="file" name="fileToUpload" id="fileToUpload"> <input type="hidden" name="csrf_token" value="<?php echo $token; ?>"> <input type="submit" value="Upload Image" name="submit"> </form> </body> </html>
O arquivo upload.php
O arquivo upload.php possui o código apresentado na listagem abaixo, no qual define o diretório onde sera salvo as imagens e realiza as validações necessarias no arquivo para realizar o upload.
Toda explicação detalhada do arquivo upload.php, esta descrita no exemplo completo disponível para baixar, citado mais acima. Ao abrir o arquivo upload.php, comentamos e explicamos cada linha apresentada do código.
<?php session_start(); // Verificar CSRF token if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) { die('Token CSRF inválido ou ausente.'); } // Pasta que salva as imagens $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION)); // Verificar se é uma imagem $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if (!$check) { echo "O arquivo não é uma imagem."; $uploadOk = 0; } // Verificar se o arquivo já existe if (file_exists($target_file)) { echo "Desculpe, o arquivo já existe."; $uploadOk = 0; } // Verificar o tamanho do arquivo if ($_FILES["fileToUpload"]["size"] > 500000) { echo "Desculpe, seu arquivo é muito grande."; $uploadOk = 0; } // Verificar formato do arquivo if ($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif") { echo "Desculpe, apenas arquivos JPG, JPEG, PNG & GIF são permitidos."; $uploadOk = 0; } // Tentar fazer o upload do arquivo if ($uploadOk) { if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { echo "O arquivo " . basename($_FILES["fileToUpload"]["name"]) . " foi enviado."; } else { echo "Desculpe, ocorreu um erro ao enviar seu arquivo."; } } ?>
Exemplo testado e ilustrado
1. Na imagem abaixo, temos uma simples tela inicial do aplicativo, onde selecionamos o arquivo desejado e confirmamos o upload:
2. A seguir, realizamos a confirmação do upload realizado em nosso teste, no qual comprovamos o funcionamento 100% da imagem no servidor e com as permissões padrões corretas no arquivo.
PS: Lembramos que o endereço de acesso utilizado nos testes são temporarios. Para seus testes, utilize um dominio e/ou subdomínio criado no painel cPanel no qual possa ter acesso no momento.