Upload varias fotos

View: New views
5 Messages — Rating Filter:   Alert me  

Upload varias fotos

by Rodrigo F. Corrêa :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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]


Re: Upload varias fotos

by Wellton Costa de Oliveira :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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@...
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

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/php-pt/

<*> Para sair deste grupo, envie um e-mail para:
    php-pt-unsubscribe@...

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html



Re: Upload varias fotos

by José Cláudio Medeiros de Lima :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

troque o
for($i = 0; $i < sizeof($imagem); $i++)
por
foreach($imagem as $file)

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]
>
>  
>


[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@...
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

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/php-pt/

<*> Para sair deste grupo, envie um e-mail para:
    php-pt-unsubscribe@...

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html



RE: Upload varias fotos

by pedro mpa :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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

$imagem['name'][$i] deve ser $imagem[$i]['name']

(http://us2.php.net/manual/en/language.types.array.php)

Insira para debug no seu código:

<pre><? print_r($imagem); ?></pre>

 

Se o seu código estiver correcto, então o problema poderá ser no
max_file_size.

Dentro do <form> deve ser incluído um input hidden com o máximo de bytes
permitidos para upload.

<input type=”hidden” name=”max_file_size” value=”1048576”>

1048576 bytes = 1 Mbyte

 

Verifique as seguintes “directives” em php.ini :

upload_tmp_dir

upload_max_filesize

post_max_size

max_input_time

 

Verifique também:

memory_limit

max_execution_time

error_reporting

display_errors

log_errors

error_log

 

Leia sobre esta variáveis em www.php.net/manual/en/

 

 

 

YO,

Pedro.

 

 

From: php-pt@... [mailto:php-pt@...] On Behalf
Of Rodrigo F. Corrêa
Sent: sexta-feira, 6 de Novembro de 2009 12:50
To: php-pt@...
Subject: [php-pt] Upload varias fotos

 

 

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]





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


Re: Upload varias fotos

by José Cláudio Medeiros de Lima :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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@...
> 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]