Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

santosbio

Sistema de escolha de fotos

Recommended Posts

Olá pessoal.

Estou criando um site para um fotógrafo, e necessito criar um sistema em que o fotógrafo faça o upload de suas fotos e que após esse upload, o cliente tenha acesso às fotos para realizar a escolha das mesmas (as populares "provinhas" das fotos).

 

Procurei na net algum script para que eu possa adaptar, e até agora consegui o seguinte:

 

Script para fazer o upload das fotos:


<?php

//Diretório aonde ficará os arquivos
$dir = "./";

//Extensões permitidas
$ext = array("gif","jpg","png");

//Quant. de campos do tipo FILE
$campos = 6;

//Formulário
echo '<form method="post" action="'.$PHP_SELF.'" enctype="multipart/form-data">
 Arquivo: <input type="file" name="file[]">

 Arquivo: <input type="file" name="file[]">

 Arquivo: <input type="file" name="file[]">

 Arquivo: <input type="file" name="file[]">

 Arquivo: <input type="file" name="file[]">

 Arquivo: <input type="file" name="file[]">

 <input type="submit" name="submit" value=" OK ">
 </form>';
 
 
//Se for enviado
if (isset($_POST['submit'])) {

//Obtendo info. dos arquivos
$f_name = $_FILES['file']['name'];
$f_tmp = $_FILES['file']['tmp_name'];
$f_type = $_FILES['file']['type'];


//Contar arquivos enviados
$cont=0;

//Repetindo de acordo com a quantidade de campos FILE
for($i=0;$i<$campos;$i++){

//Pegando o nome
$name = $f_name[$i];

//Verificando se o campo contem arquivo
 if ( ($name!="") and (is_file($f_tmp[$i])) and (in_array(substr($name, -3),$ext)) ) {

 if ($cont==0) {
 echo "<b>Arquivo(s) enviados:
</b>";
 }
 echo $name." - ";

 //Movendo arquivo's do upload
 $up = move_uploaded_file($f_tmp[$i], $dir.$name);

 //Status
 if ($up==true):
 echo "<i>Enviado!</i>";
 $cont++;
 else:
 echo "<i>Falhou!</i>";
 endif;

 echo "
";
 }

}

echo ($cont!=0) ? "<i>Total de arquivos enviados: </i>".$cont : "Nenhum arquivo foi enviado!";
}
?>

 

 

Script para visualizar as fotos enviadas (estilo uma galeria):


<?php
// extençoes aceitas
foreach(array_merge(glob("*.gif"), glob("*.jpeg"), glob("*.jpg"), glob("*.png"), glob("*.JPG"), glob("*.PNG"), glob("*.GIF"), glob("*.JPEG")) as $arquivo ){
echo "<img src='".$arquivo."'<span class='style1'>--</span>";
}
?>

 

 

 

Então... precisava fazer o seguinte:

Ao fazer o upload, o fotógrafo define o nome da pasta para onde irão as imagens. Após o upload das imagens, o fotógrafo define um login e senha para o acesso da mesma pasta, no estilo de uma galeria de imagens com umas checkbox's para o cliente escolher as fotos que quer comprar. Ao finalizar as escolhas, preciso que o fotógrafo receba o nome das imagens por email, para sua posterior edição e impressão.

 

Faz quase um mês que tô atrás disso, e não consegui nada ainda... não tenho experiência com PHP, mas já me virei com alguns projetos, adaptando os códigos que eu achava na net.

 

Agradeço desde já a atenção de todos.

 

c ya!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal... achei outro código pra upload, e resolvi utilizar ele. O problema agora é o seguinte: eu preciso, através do formulário de envio de fotos, criar um diretório para abrigar as imagens. O código que estou utilizando é o seguinte:

 

 

 

 

Formulário para upload (e logout da área administrativa):


<?
include("restringir.php");
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?
echo "<a href=\"logout.php\">Sair</a>";
?>
<BR />
<form action="upload.php" method="post"  enctype="multipart/form-data">
Envie sua foto para o site! <input type="file" name="foto"><BR>
Pasta do cliente: <input type="text" name="pastacl"><BR>
<input type="submit" value="Enviar Foto!">
</form>
</body>
</html>

 

arquivo upload.php



<?
$erro = $config = array();

// Prepara a variável do arquivo
$arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;
$pastacl = isset($_POST["pastacl"])  ? $_POST["pastacl"] : "";

// Tamanho máximo do arquivo (em bytes)
$config["tamanho"] = 106883;
// Largura máxima (pixels)
$config["largura"] = 350;
// Altura máxima (pixels)
$config["altura"]  = 180;

// Formulário postado... executa as ações
if($arquivo)
{  
    // Verifica se o mime-type do arquivo é de imagem
    if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp){:content:}quot;, $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";
        }
    }
    
    // Imprime as mensagens de erro
    if(sizeof($erro))
    {
        foreach($erro as $err)
        {
            echo " - " . $err . "<BR>";
        }

        echo "<a href=\"foto.html\">Fazer Upload de Outra Imagem</a>";
    }

    // Verificação de dados OK, nenhum erro ocorrido, executa então o upload...
    else
    {
        // Pega extensão do arquivo
        preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);

        // Gera um nome único para a imagem
        $imagem_nome = md5(uniqid(time())) . "." . $ext[1];

        // Caminho de onde a imagem ficará
        $imagem_dir = "img/" . $pastacl . $imagem_nome;

        // Faz o upload da imagem
        move_uploaded_file($arquivo["tmp_name"], $imagem_dir);

        echo "Sua foto foi enviada com sucesso!";
    }
}
?>

No código acima, tem um trecho onde fala do diretório da imagem. O código é esse:

 

 


// Caminho de onde a imagem ficará
        $imagem_dir = "img/" . $pastacl . $imagem_nome;[/b][/b]

 

 

eu inclui no código a variável $pastacl, com a intenção de criar o diretório, mas creio que não é assim que se faz, já que ao fazer o upload, a imagem fica com o nome que eu defini pra pasta + um nome randômico (pra evitar arquivos com mesmo nome).

 

 

Peço ajuda aos amigos pra solucionar esse empasse... *.*

 

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui criar o diretório dinamicamente, adicionando o seguinte código no arquivo que postei anteriormente, após declarar a variável $pastacl:

 


  // nome do diretório
  $diretorio = "img/" . $pastacl;
  
  // cria o diretório com a permissão 0777
  if(mkdir($diretorio, 0777, true))
    echo "Diretório criado com sucesso. ";
  else
    echo "Não foi possível criar o diretório. ";

 

Porém... como nem tudo são flores... a pasta é criada e o arquivo é upado fora dessa pasta (ficando dentro da pasta "img/"... Imagem Postada

 

Onde será que estou errando???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz mais algumas modificações... retirei a parte que gerava um nome randômico pro arquivo (já que não haverá duplicidade, pois cada cliente terá uma pasta específica).

 

então... o final do arquivo ficou assim:

 

 

 



//pegando o nome da imagem
        $tmp_name = $_FILES["foto"]["tmp_name"][$key];
        $name = $_FILES["foto"]["name"][$key];

        // Caminho de onde a imagem ficará
        $imagem_dir = "img";

        // Faz o upload da imagem
        move_uploaded_file($arquivo["name"], "$imagem_dir/$pastacl");

        echo "Sua foto foi enviada com sucesso!";
    }
}
?>

 

 

 

mudei também o caminho do move_upload... vi no php.net que dá pra usar ele assim: $ imagem_dir/$ pastacl.

 

Porém, agora a imagem nem aparece no servidor (e no script, acusa que ela foi enviada com sucesso)... Imagem Postada

 

E então... alguém consegue me dar uma luz nisso aki???

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um echo na varíável para certificar-se que o caminho está correto.

$imagem_dir = "img/" . $pastacl . $imagem_nome;
echo $imagem_dir;exit;

Fazendo isso, acusa o caminho "img/"... porém, nem nesse caminho a imagem se encontra... oO

 

 

ahh... o código q eu tô usando agora não tem mais o ". $ imagem_nome"... é pq eu não quero criar uma pasta pra cada imagem, e sim, uma pra cada pessoa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.