• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

GONCALOPES

upload photos em php

8 mensagens neste tópico

foi me proposto fazer um site identico ao dos olhares.com, eu como gosto de desafios aceitei, agora falta so o upload de fotos, eu nao sei como fazer.

gostava de fazer em php, através de código ou de outro maneiro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

até podes utilizar uma function para te gerar nomes aleatórios:


function mKey($len = 6, $type = 'ALNUM')
{
    $alpha = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
                   'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');                   
    $ALPHA = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
                     'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');            
    $num = array('1', '2', '3', '4', '5', '6', '7', '8', '9', '0');
    $keyVals = array();
    $key = array();   
   
    switch ($type)
    {
        case 'lower' :
            $keyVals = $alpha;
            break;
        case 'upper' :
            $keyVals = $ALPHA;
            break;
        case 'numeric' :
            $keyVals = $num;
            break;
        case 'ALPHA' :
            $keyVals = array_merge($alpha, $ALPHA);
            break;
        case 'ALNUM' :
            $keyVals = array_merge($alpha, $ALPHA, $num);
            break;
    }
   
    for($i = 0; $i <= $len-1; $i++)
    {
        $r = rand(0,count($keyVals)-1);
        $key[$i] = $keyVals[$r];
    }
   
    return join("", $key);
}

$nome_aleatorio=mKey();


if($_FILES['file']['name'] !='')
{

//dados do ficheiro
$nome_ficheiro_1 = $_FILES['file']['name'];
$nome_ficheiro_1 = $nome_aleatorio.'.jpg';						
$target1 = "images/";
$target1 = $target1 . basename( $nome_ficheiro_1 ) ;

   if(move_uploaded_file($_FILES['file']['tmp_name'], $target1))
  {
$aviso=$nome_ficheiro_1 .' foi enviada.';
  }

}

abraço,

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu não gosto de nomes aleatórios eu prefiro dar o nome ao ficheiro com o time() ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O time() não te garante que eu não envie um file no mesmo segundo que o Zézinho.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes sempre isto:

<?php

$erro = $config = array();

$ficheiro = isset($_FILES["imagem"]) ? $_FILES["imagem"] : FALSE;
$ficheirotype = $_FILES["imagem"]["type"];

$config["largura"] = 800;
$config["altura"]  = 800;
$config["tamanho"] = 2000000;

if (isset($_POST['submit'])) {

$ficheiral = strlen($ficheirotype);

function imagem_valida($type) {
    $file_types  = array(  
    	'image/pjpeg' => 'jpg',
    	'image/jpeg' => 'jpg',
    	'image/jpeg' => 'jpeg',
    	'image/gif' => 'gif',
    	'image/X-PNG' => 'png',
    	'image/PNG' => 'png',
    	'image/png' => 'png',
    	'image/x-png' => 'png',
    	'image/JPG' => 'jpg',
    	'image/GIF' => 'gif',
    	'image/bmp' => 'bmp',
    	'image/bmp' => 'BMP',
    );
   
    if(!array_key_exists($type, $file_types)) 
    	return "FALSE";
    else 
    	return "TRUE";
}

if ($ficheiral != 0) {
$tamanhos = getimagesize($ficheiro["tmp_name"]);

	if($ficheiro["size"] > $config["tamanho"] or $ficheiro["size"] > $config["tamanho"]) 
		$erro[] = "O ficheiro tem um tamanho muito grande! <br />A imagem deve ser de no máximo 2Mb.";
	if($tamanhos[0] > $config["largura"]) 
		$erro[] = "A largura não deve ultrapassar " . $config["largura"] . " pixels";
	if($tamanhos[1] > $config["altura"]) 
		$erro[] = "A altura não deve ultrapassar " . $config["altura"] . " pixels";

if(sizeof($erro)) {
foreach($erro as $err) 
	echo " - " . $err . "<br />";

echo "<br /><br /><div class=\"img\"><a href=\"javascript:history.go(-1);\"><img src=\"images/back.png\" width=\"64\" height=\"64\" alt=\"Voltar a trás\" border=\"0\" /></a></div><br /><a href=\"javascript:history.go(-1);\">Voltar a trás</a><br />";

} else {
if ($ficheiral != 0) {

if(imagem_valida($ficheiro['type']) === "FALSE") 
	die("A imagem é inválida.");


preg_match("/\.(jpg|gif|bmp|png|jpeg){1}$/i", $ficheiro["name"], $ext);
$imagem_nome = md5(uniqid(time())) . "." . $ext[1];
$imagem_dir = "pastadasimagens/" . $imagem_nome;
move_uploaded_file($ficheiro["tmp_name"], $imagem_dir);
}
}
}
}
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora