Entrar
Usuário novo? Cadastre-se
php-pt · PHP para quem fala Português
? Você já é um associado? Entre no Yahoo!

Dicas

Você sabia...
Você pode receber várias mensagens em um único e-mail. Basta configurar suas opções de entrega de e-mail.

Mensagens

  Ajuda
Avançado
Upload varias fotos   Lista de mensagens  
Responder Mensagem #145670 de 146472 |
Re: [php-pt] Upload varias fotos

Esse não é o problema.
Dê um print_r($_FILES) que você verá o problema.
Só está copiando os 5 primeiros pq o array $_FILES agrupa os dados por tipo.
Ex. Esse seu FOR está *ASSUMINDO *que o array $_FILES está nesse formato:

imagem[0]
name=>imagem1
type=>image/jpeg
size=>93248
tmp_name=>38479113123.tmp
error=>0
imagem[1]
name=>imagem2
type=>image/jpeg
size=>93248
tmp_name=>38479113123.tmp
error=>0

E por aí vai, uma linha para cada imagem... acontece que o array $_FILES *NÃO
ESTÁ NESTE FORMATO*, ele agrupa os dados por tipo, portanto, ele estará
assim:

imagem[name]
[0]=>imagem1.jpg
[1]=>imagem2.jpg
imagem[type]
[0]=>image/jpeg
[1]=>image/jpeg

e assim por diante.

Portanto, se você der um FOR no array $_FILES, ele sempre vai rodar só 5
vezes, pois ele realmente só terá 5 valores: name, type, error, tmp_name e
size.

Sacou?

Você pode resolver isso de diversas formas. Pra não modificar muito o que
você já fez, faça assim:

foreach($_FILES['imagem']['name'] as $chave=>$valor):
$nome = $valor;
$type = $_FILES['imagem']['type'][$chave];
///e por aí vai
endforeach;


Só finalizando... é recomendado nunca utilizar uma função dentro do for,
pois ela será executada novamente a cada iteração do laço.
Ou seja, ao invés de você utilizar

*for($i=0;$i<sizeof($imagem);$i++)*


**faça assim
*
*

*$num = sizeof($imagem);*
*for($i=0;$i<$num;$i++)*


Ou utilize o foreach, que é ainda melhor.


Cláudio.





2009/11/6 Wellton Costa de Oliveira <wco.linux@...>

> se são 10 e só tá aparecendo 5, então, some +5 nessa linha:
>
> for($i = 0; $i < sizeof($imagem)*+5*; $i++)
>
> é uma gambiarra, mas deve dar certo!!
>
> 2009/11/6 Rodrigo F. Corrêa <rofer_patos@...>
>
> >
> >
> > Pessoal, tenho o seguinte codigo pra fazer o upload de até 10 imagens.
> > Ele funciona certinho só que o laço está pegando somente os 5 primeiros
> > arquivos.
> > Gostaria de obter uma ajuda neste caso.
> >
> > No formulario de envio, todos os inputs estão
> > assim:
> > <input name="imagem[]" type="file" id="imagem[]"/>
> >
> > PHP
> > $imagem = $_FILES['imagem'];
> > //$imagem = $imagem['name'];
> > //$nome = $_POST['nome'];
> > $idimoveis = $_POST['id_imovel'];
> >
> > for($i = 0; $i < sizeof($imagem); $i++)
> > {
> > // Passa valores da iteração atual
> > $nome = $imagem['name'][$i];
> >
> >
> > if ($nome != "")
> > {
> > //(move_uploaded_file($_FILES['imagem']['tmp_name'],$caminho)
> > echo 'A imagem é:' .$nome."<br>";}
> >
> > else {"Cadastro não efetuado";}
> > }
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
>
>
> --
> Wellton Costa de Oliveira
> Mestrando
> Universidade Tecnológica Federal do Paraná - UTFPR
> Programa de Pós-graduação em Engenharia Elétrica e Informática Industrial -
> CPGEI
> Laboratório de Imagem e Instrumentação Eletrônica - LABIEM
> http://www.labiem.cpgei.cefetpr.br
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> ProPHP - Grupo de Profissionais de PHP do Brasil
> http://www.prophp.com.br/
>
>
> ---- Endereços uteis PHP-PT ----
> Para deixar de receber mensagens: php-pt-unsubscribe@yahoogroups.com
> Endereço geral do grupo: http://br.groups.yahoo.com/group/php-pt/
> AJUDA URGENTE VIA CHAT, IRC, ICQ, etc:
>
>
http://br.groups.yahoo.com/group/php-pt/links/Ajuda_urgente_via_ch_001060813790/
> Questões de PHP mais difíceis não respondidas aqui:
> http://br.groups.yahoo.com/group/php-especialistas/
> Ofertas de emprego: http://br.groups.yahoo.com/group/php-empregos/
> Treinamento e certificação em PHP:
> http://br.groups.yahoo.com/group/php-treinamento/
> Outras listas de interesse para quem desenvolve em PHP:
> http://br.groups.yahoo.com/group/php-pt/links/OutrasListas_001005680122/
> Componentes prontos de programação em PHP: http://www.phpclasses.org/
> Artigos em Português: http://phpbrasil.com/Links do Yahoo! Grupos
>
>
>


[As partes desta mensagem que não continham texto foram removidas]




Sáb, 7 de Nov de 2009 4:17 am

klawdyo_mede...
Offline Offline
Enviar e-mail Enviar e-mail

Mensagem #145670 de 146472 |
Expandir mensagens Nome/E-mail Classificar por data

Pessoal, tenho o seguinte codigo pra fazer o upload de até 10 imagens. Ele funciona certinho só que o laço está pegando somente os 5 primeiros arquivos. ...
Rodrigo F. Corrêa
rofer_patos
Offline Enviar e-mail
6 de Nov de 2009
4:45 pm

Viva. Não corri o seu código, mas de olho encontro alguns erros: Se $imagem é um array e vem de POST como: $imagem[0], $imagem[1] … $imagem[n] então ...
Pedro Mpa
pedrompc76
Offline Enviar e-mail
6 de Nov de 2009
9:14 pm

troque o for($i = 0; $i < sizeof($imagem); $i++) por foreach($imagem as $file) 2009/11/6 Rodrigo F. Corrêa <rofer_patos@...> ... [As partes desta...
José Cláudio Me...
klawdyo_mede...
Offline Enviar e-mail
6 de Nov de 2009
9:14 pm

se são 10 e só tá aparecendo 5, então, some +5 nessa linha: for($i = 0; $i < sizeof($imagem)*+5*; $i++) é uma gambiarra, mas deve dar certo!! 2009/11/6...
Wellton Costa de Oliv...
welltonrato
Offline Enviar e-mail
6 de Nov de 2009
9:14 pm

Esse não é o problema. Dê um print_r($_FILES) que você verá o problema. Só está copiando os 5 primeiros pq o array $_FILES agrupa os dados por tipo. Ex....
José Cláudio Me...
klawdyo_mede...
Offline Enviar e-mail
7 de Nov de 2009
4:47 am
Avançado

Copyright © 2010 Yahoo! do Brasil Internet Ltda. Todos os direitos reservados.
Política de Privacidade - Termos do Serviço - Diretrizes - Ajuda