Fazer um Upload de multiplas fotos
[ 1ª Duvida ] - Ja foi solucionada! =)
Bem, eu tenho um diretorio chamado "img" onde as fotos:
marca1.jpg
marca2.jpg
marca3.jpg
estão guardadas, e sempre terão de ter esse nome. Por exemplo:
Se eu quizer mudar a marca1.jpg, escolho no micro qualquer imagem
e o meu script altera ja o nome para marca1.jpg, porem.. ja existe
uma no server.. e acho que ele nao ta conseguindo sobrepor, e alias
eu nao fiz nenhuma rotina para ele deletar a imagem caso a mesma ja exista
e guarde a atual que to mandando..
Alguem tem uma logica ou sabe me dizer como devo proceder?
Vou postar como esta o codigo, logo abaixo com a 2° Duvida.
Reposta:
Usei a função unlink() para deletar a imagem atual antes de mandar a outra com o mesmo nome para a pasta ;)
[ 2ª Duvida ]
Eu fiz uma pequena gambiarra, eu acho.. pois se ele tem q gravar 3 fotos ao mesmo
tempo, ele teria de rodar 3 rotinas distintas? ou tem como eu tratar isso
para ele continuar gravando, sobrepondo e vendo o nome de cada foto?
O codigo que estou usando atualmente:
<?php// Prepara a variável caso o formulário tenha sido postado$arquivo = isset($_FILES["foto1"]) ? $_FILES["foto1"] : FALSE;$config = array();// Tamano máximo da imagem, em bytes$config["tamanho"] = 25600;// Largura Máxima, em pixels$config["largura"] = 90;// Altura Máxima, em pixels$config["altura"] = 85;// Diretório onde a imagem será salva$config["diretorio"] = "../img/";// Gera um nome para a imagem e verifica se já não existe, caso exista, gera outro nome e assim sucessivamente..// Função Recursivafunction nome($extensao){ global $config; // Gera um nome único para a imagem $temp = "marca1"; $imagem_nome = $temp . "." . $extensao; // Verifica se o arquivo já existe, caso positivo, chama essa função novamente if(file_exists($config["diretorio"] . $imagem_nome)) { unlink($config["diretorio"] . $imagem_nome); <------ matei a Duvida 1 hehehehe $imagem_nome = nome($extensao); } return $imagem_nome;}if($arquivo){ $erro = array(); // Verifica o mime-type do arquivo para ver se é de imagem. // Caso fosse verificar a extensão do nome de arquivo, o código deveria ser: // // if(!eregi("\.(jpg|jpeg|bmp|gif|png){1}$", $arquivo["name"])) { // $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo"; } // // Mas, o que ocorre é que alguns usuários mal-intencionados, podem pegar um vírus .exe e simplesmente mudar a extensão // para alguma das imagens e enviar. Então, não adiantaria em nada verificar a extensão do nome do arquivo. if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $arquivo["type"])) { $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo"; } else { // Verifica tamanho do arquivo if($arquivo["size"] > $config["tamanho"]) { $erro[] = "Arquivo em tamanho muito grande! A imagem deve ser de no máximo " . $config["tamanho"] . " bytes. Envie outro arquivo"; } // Para verificar as dimensões da imagem $tamanhos = getimagesize($arquivo["tmp_name"]); // Verifica largura if($tamanhos[0] > $config["largura"]) { $erro[] = "Largura da imagem não deve ultrapassar " . $config["largura"] . " pixels"; } // Verifica altura if($tamanhos[1] > $config["altura"]) { $erro[] = "Altura da imagem não deve ultrapassar " . $config["altura"] . " pixels"; } } if(!sizeof($erro)) { // Pega extensão do arquivo, o indice 1 do array conterá a extensão preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext); // Gera nome único para a imagem $imagem_nome = nome($ext[1]); // Caminho de onde a imagem ficará $imagem_dir = $config["diretorio"] . $imagem_nome; // Faz o upload da imagem move_uploaded_file($arquivo["tmp_name"], $imagem_dir); }}?>Bem, isso ele faz com UMA imagem, mas e para fazer com 3 ao mesmo tempo?Tipo, tendo os 3 ( $_FILES["foto1"] , $_FILES["foto2"] e $_FILES["foto3"] )
qual a maneira correta de proceder?
Bom, sao essas minhas duvidas hehehe
Se alguem tiver algum comentario, repostas ou qualquer coisa eu agradeço ! :]
Discussão (1)
Carregando comentários...