<< Click to Display Table of Contents >> File Upload |
![]() ![]() ![]() |
2 arquivos
<form name="post" action="./aqui.php?post=true" method="post" enctype="multipart/form-data">
<p style="margin-bottom: 10px; text-align: right"><a href="./aqui.php" title="Atualizar">Atualizar</a></p>
<input type="file" name="arquivo">
<button>Enviar</button>
</form>
// pasta destino dos uploads
$pasta = __DIR__ . "/arquivos";
// para ver os limites do servidor
// tamanho de arquivo
echo "<p>" . ini_get("upload_max_filesize") . "</p>";
// tamanho de todo os post (variaveis e arquivos)
echo "<p>" . ini_get("post_max_size") . "</p>";
// tipos de arquivo de php
var_dump([
filetype(__DIR__ . "/aqui.php"),
mime_content_type(__DIR__ . "/aqui.php")
]);
// isso é para que saiba que foi feito um post - mesmo que o arquivo não foi valido
// é um truque de programação para detectar um envio com arquivo muito grande
// pois o php não avisa quando é muito grande, simplesmente ignora o arquivo
$getPost = filter_input(INPUT_GET, "post", FILTER_VALIDATE_BOOLEAN);
// se não tem arquivos para envio
if ($_FILES) {
// nao está em branco o arquivo?
if (empty($_FILES['arquivo']['name'])) {
// então nao pegou nada
echo "<p style='color: red;'>Selecione um arquivo!</p>";
} else {
// mostra os arquivos
$arquivos = $_FILES['arquivo'];
var_dump($arquivos);
// tipos que vou permitir
$permitidos = [
"image/jpg",
"image/jpeg",
"image/png",
"application/pdf"
];
// novo nome é hora atual + extensao do arquivo que tá subindo
$novo = time().mb_strstr($arquivos['name'], ".");
var_dump($novo);
// se nosso arquivo está nos tipos permitidos
if (in_array($arquivos['type'], $permitidos)) {
if (move_uploaded_file($arquivos['tmp_name'], $pasta."/".$novo)) {
echo "<p style='color: green;'>Tudo certo!</p>";
} else {
echo "<p style='color: red;'>Erro ao subir arquivo</p>";
}
} else {
echo "<p style='color: red;'>Tipo de arquivo não permitido</p>";
}
}
// else = foi feito post mas sem arquivo
} elseif ($getPost) {
echo "<p style='color: red;'>Arquivo muito grande?</p>";
}
include __DIR__ . "./form.php";