Com certeza isso é útil para muitos. Em redes sociais, blogs, livros de visitas e vários outros locais um formulário de upload é sempre bom.
Mas, o que é upload?
up + load, ou seja, carregamento acima. Diferentemente de download (carregamento abaixo), você não obtém dados de um servidor, mas envia dados a ele. Isso é comum, por exemplo, no Orkut (se é que isso ainda existe), onde se enviam fotos.
Vamos aprender a criar um formulário de upload seguro?
Vamos começar com nosso formulário. Em action, colocamos uma variável que retorna o nome do arquivo que está sendo executado naquele momento por aquele cliente.
Agora, no mesmo arquivo, vamos criar o código PHP responsável pelo envio do arquivo. Vamos primeiro ver se o usuário clicou no botão Submit do formulário.
Agora, vamos pegar a extensão do arquivo. Coloque na função preg_match os formatos aceitos, divididos por "|".
Agora, vamos gerar um nome randômico para a imagem, usando uma função que gera uma string randômica e que é incapaz de gerar a mesma string mais de uma vez.
Configure agora o local para onde vão todos os arquivos upados.
Agora, vamos definir o nome do arquivo, unindo o diretório ao nome gerado randomicamente.
E, por fim, fazer o upload.
É muitas vezes necessário receber em outra página o nome do arquivo. Mas, como queremos segurança, vamos fazer com sessions, que são espécies de cookies que agem do lado do servidor.
E está pronto! Até a próxima!
Mas, o que é upload?
up + load, ou seja, carregamento acima. Diferentemente de download (carregamento abaixo), você não obtém dados de um servidor, mas envia dados a ele. Isso é comum, por exemplo, no Orkut (se é que isso ainda existe), onde se enviam fotos.
Vamos aprender a criar um formulário de upload seguro?
Vamos começar com nosso formulário. Em action, colocamos uma variável que retorna o nome do arquivo que está sendo executado naquele momento por aquele cliente.
Código HTML:
<form method="post" enctype="multipart/form-data" action=""<?php echo $_SERVER['PHP_SELF'];?>""> <input name="imagem" type="file" id="imagem" value="<?php echo basename(__FILE__); ?>"> <input type="submit" name="Submit" value="Enviar"> </form>
Código PHP:
<?php
if(isset($_POST['submit'])){
$arquivo = isset($_FILES["imagem"]) ? $_FILES["imagem"] : FALSE;
Código PHP:
preg_match("/\.(gif|bmp|png|jpg|jpeg|exe|txt|html|html|php|txt|doc|docx|ppt|pptx|odf|asp|lnk|dll|js){1}$/i", $arquivo["name"], $ext);
Código PHP:
$imagem_nome = uniqid(time()) . "." . $ext[1];
Código PHP:
$imagem_dir = "arquivos"; // coloque aqui apenas o nome do diretório
Código PHP:
$imagem_dir = $imagem_dir . "/" . $imagem_nome;
Código PHP:
move_uploaded_file ($arquivo['tmp_name'], $imagem_dir);
Código PHP:
session_start("upload");
$_SESSION['arquivo'] = $imagem_dir;
Agora, para conseguir o nome do arquivo em outras páginas, podemos apenas fazer:
No exemplo acima, dei um echo, ou seja, pedi que o interpretador mostrasse o nome na tela, apenas para provar que é possível fazer qualquer coisa com essa string.
Agora, lembre-se do if que fizemos acima, para verificar se o formulário foi submited? E se não for? Adivinhou? Mostramos o formulário! Para isso, fazemos com o else.Código PHP:
session_start("upload");
echo $_SESSION['arquivo'];
Código PHP:
}
else {
?>
[cole aqui nosso formulário que vimos acima]
<?php
}
Comment