Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Ajuda Com For


inavoig.17

Pergunta

Olá pessoal,

Estou fazendo um sistema de upload:

Só que estou tendo um problema na parte de gerar o nome da imagem.

Quero que ele crie o nome cada vez com um numero diferente no final

ex. o nome da minha imagem vai ser $view_cod(que é o código de cada item) + um número (de 1 até 12.. sendo criados em sequencia 1,2,3,4,5...)

Com esse meu for ele até está salvando a imagem, porem toda hora salva com o mesmo nome sempre: $view_cod + 0.jpg

ex: tem um item.. o código dele é 1001. quando vou fazer o upload da imagem ele salva sempre as imagem que carrego assim: 10010.jpg, sempre repetindo

quando o certo deveria ser 10010.jpg, ai na proxima 10011.jpg, proxima: 10012.jpg.. e por ai vai indo.. até 12 que é o número maximo de imagens que eu vou permitir por item.

Essa é a parte especifica do código

for($y=0; $y<=12; $y++){ 
               $imagem_nome[$y] = $view_cod . $y . "." . "jpg";
           }
           
           $imagem_dir = "../../../../dynamic/mini/";
           
           for($y=0; $y<=12; $y++){
            move_uploaded_file($arquivo["tmp_name"], $imagem_dir.$imagem_nome[$y]);
    }
       echo "Sua foto foi enviada com sucesso!";
Essa é toda a parte de upload, caso queiram ver como estou fazendo.
<?
$erro = $config = array();

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

//  ADICIONADO PARA VISUALIZAR OS DADOS
//  ORIGINAIS DA IMAGEM
//echo '<h1>Nome original da minha imagem.........', $arquivo['name'], ' que esta no servidor atraves do caminho ', $arquivo['tmp_name'], '</h1>';
//exit;


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


// 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)$", $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=\"index.php?menu=3&view_cod=$view_cod\">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);     
        

        // Faz o upload da imagem
           for($y=0; $y<=12; $y++){ 
               $imagem_nome[$y] = $view_cod . $y . "." . "jpg";
           }
           
           $imagem_dir = "../../../../dynamic/mini/";
           
           for($y=0; $y<=12; $y++){
            move_uploaded_file($arquivo["tmp_name"], $imagem_dir.$imagem_nome[$y]);
        }
        

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

alguém sabe qual o erro desse for?

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Pra que esses dois laços?

$imagem_dir = "../../../../dynamic/mini/";
           
           for($y=0; $y<=12; $y++){

$imagem_nome = $view_cod . $y . ".jpg";

            move_uploaded_file($arquivo["tmp_name"], $imagem_dir.$imagem_nome);
    }

Link para o comentário
Compartilhar em outros sites

  • 0

é realmente não havia nassecidade dos dois laços.

mas mesmo com o laço assim:

$imagem_dir = "../../../../dynamic/mini/";
          
           for($y=0; $y<=12; $y++){

$imagem_nome = $view_cod . $y . ".jpg";

            move_uploaded_file($arquivo["tmp_name"], $imagem_dir.$imagem_nome);
    }

Continua salvando sempre com o mesmo nome. "$view_cod + 0.jpg "

tem alguma variavel errada, faltando algum comando, ou sobrando. rs

Obrigado

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Rpz, ta meio bagunçado isso ai, mais pelo que entendi foi o seguinte

quanto voce da um post em um input tyle="file" o php faz upload do arquivo e deixa em uma pasta temporária com um nome temporário.

ate ai tudo bem.

ai no seu codigo o arquivo (apenas um arquivo) e apontado pela variavel $arquivo, beleza..

trata a imagem e blah blah blah, porem quando chega no for...

ele entra a primeira vez, $y=0 forma o nome correto do arquivo, depois MOVE o arquivo da pasta temporaria para o diretorio indicado, perfeito

quando entra pela segunda vez, $y = 1, forma o nome correto do arquivo, porem não existe mais o arquivo na pasta temporaria, então não move mais.

se se codigo funcionasse você iria ter 12 imagens iguais.

você iria ter image exemplo:

6661.jpg

6662.jpg

6663.jpg

...

66612.jpg

sendo todas elas a mesma imagem, acredito que não é seu objetivo.

espero ter ajudado..

Link para o comentário
Compartilhar em outros sites

  • 0

Opa era isso mesmo..

mas consegui resolver o problema:

o for ficou assim:

for ($y = 0; $y <= 12; $y++) { 
                $imagem_nome = sprintf('%04d%02d.jpg', $view_cod, $y);
                if (!is_file($imagem_dir.$imagem_nome)) {
                    break; 
                }
            }
            
            if ($y == 13) { 
                echo 'Erro: já foram enviadas 12 imagens'; 
                exit(1); 
            }
            
            if (move_uploaded_file($arquivo["tmp_name"], $imagem_dir.$imagem_nome)) {
                echo "Sua foto foi enviada com sucesso!";  
            }

Obrigado Toze e Eserra

abraço

t+

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...