Ir para conteúdo

POWERED BY:

Arquivado

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

Eduardoaa

[Resolvido] array

Recommended Posts

Pessoal, estou com uma dúvida simples, porém não consigo solucionar criei o código abaixo. O código recebe o nome de 10 fotos via Post e quero jogar os 10 nomes em vetor.

Quando dou o comando echo dentro do primeiro while aparecem os nomes das fotos quando dou o comando echo no segundo while ele não me retorna nda. O que será que estou fazendo errado?

 

Grato!

 

<!--o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o
o.o.o.o.o.o		Função para gravar um Evento, seja a requisição de incluir ou alterar		o.o.o.o.o.o.o.o.
o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o-->
<?php
//conecta ao banco
require "conecta.php";

require "verificaselog.php";//verifica se usuario está logado

// Comando SQL
$titulo = $_POST['titulo'];
$texto = $_POST['texto'];
//propriedades do arquivo de upload
$numfoto = 0;
while ($numfoto < 10){
	$foto = array();
	$aux = $_FILES['foto'.$numfoto]['name'];
	$foto[$numfoto] = $aux;//$_FILES['foto'.$numfoto]['name'];
	$numfoto++;

}
$numfoto = 0;
while ($numfoto < 10){
	ECHO $foto[$numfoto];
	$numfoto++;
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais que gambiarra nervosa foi essa que você fez, amigo? :o

 

Não é assim que se faz upload múltiplo de arquivos. Salvo o HTML muito tosco, seria assim:

 

<html>
<head>
<body>
<form name="upload" enctype="multipart/form-data" action="test.php" method="post">

<p>
   <input type="file" name="photo[]" />
</p>

<p>
   <input type="file" name="photo[]" />
</p>

<p>
   <input type="file" name="photo[]" />
</p>

<p>
   <input type="file" name="photo[]" />
</p>

<p>
   <input type="file" name="photo[]" />
</p>

<p>
   <input type="submit" name="submit" value="Send" />
</p>
</form>
</body>
</html>

Tantos campos de upload quantos você precise e todos com o mesmo nome. Mas perceba os colchetes vazios, que farão o browser dizer ao programa PHP que mais de uma photo/arquivo está sendo enviado.

 

Só com isso já temos, ao visualizar $_FILES (com três arquivos enviados):

 

array
 'photo' => 
   array
     'name' => 
       array
         0 => string 'tumblr_m3qs6nSoJa1qdlh1io1_r4_400.gif' (length=37)
         1 => string 'tedio.jpg' (length=9)
         2 => string 'center-header.png' (length=17)
         3 => string '' (length=0)
         4 => string '' (length=0)
     'type' => 
       array
         0 => string 'image/gif' (length=9)
         1 => string 'image/jpeg' (length=10)
         2 => string 'image/png' (length=9)
         3 => string '' (length=0)
         4 => string '' (length=0)
     'tmp_name' => 
       array
         0 => string 'W:\XAMPP\tmp\phpB8.tmp' (length=22)
         1 => string 'W:\XAMPP\tmp\phpB9.tmp' (length=22)
         2 => string 'W:\XAMPP\tmp\phpBA.tmp' (length=22)
         3 => string '' (length=0)
         4 => string '' (length=0)
     'error' => 
       array
         0 => int 0
         1 => int 0
         2 => int 0
         3 => int 4
         4 => int 4
     'size' => 
       array
         0 => int 1046391
         1 => int 47508
         2 => int 47897
         3 => int 0
         4 => int 0

Agora é só manipular os dados e copiar os arquivos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma forma de facilitar a manipulação destes dados seria essa:

 

Algo desse tipo:

array
 'name' => 
   array
     0 => string '' (length=0)
     1 => string '6434outono.jpg' (length=14)
     2 => string '' (length=0)
     3 => string 'Jellyfish.jpg' (length=13)
     4 => string '' (length=0)
 'type' => 
   array
     0 => string '' (length=0)
     1 => string 'image/jpeg' (length=10)
     2 => string '' (length=0)
     3 => string 'image/jpeg' (length=10)
     4 => string '' (length=0)
 'tmp_name' => 
   array
     0 => string '' (length=0)
     1 => string 'C:\wamp\tmp\phpE8CF.tmp' (length=23)
     2 => string '' (length=0)
     3 => string 'C:\wamp\tmp\phpE8DF.tmp' (length=23)
     4 => string '' (length=0)
 'error' => 
   array
     0 => int 4
     1 => int 0
     2 => int 4
     3 => int 0
     4 => int 4
 'size' => 
   array
     0 => int 0
     1 => int 371614
     2 => int 0
     3 => int 775702
     4 => int 0

 

Reorganiza o array

<?php

$pictures = $_FILES[ 'photo' ];

for( $i = 0; $i < count( $pictures ); $i++ )
{
   if( $pictures[ 'error' ] [ $i ] == UPLOAD_ERR_OK )
   {
       $files[ ] = array(
               'name'     => $pictures[ 'name' ] [ $i ],
               'type'     => $pictures[ 'type' ] [ $i ],
               'tmp_name' => $pictures[ 'tmp_name' ] [ $i ],
               'error'    => $pictures[ 'error' ] [ $i ],
               'size'     => $pictures[ 'size' ] [ $i ]
           );
   }
}

var_dump( $files );

?>

 

Ficaria assim:

array
 0 => 
   array
     'name' => string '6434outono.jpg' (length=14)
     'type' => string 'image/jpeg' (length=10)
     'tmp_name' => string 'C:\wamp\tmp\phpE8CF.tmp' (length=23)
     'error' => int 0
     'size' => int 371614
 1 => 
   array
     'name' => string 'Jellyfish.jpg' (length=13)
     'type' => string 'image/jpeg' (length=10)
     'tmp_name' => string 'C:\wamp\tmp\phpE8DF.tmp' (length=23)
     'error' => int 0
     'size' => int 775702

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, excelente... mais uma dúvida rsss...

 

Como eu jogo o conteúdo do array dentro do comando move_uploaded_file. Como vou saber qual posição do array está vazia?

 

Se tiver um exemplo agradeço!

 

Abraço!

 

Eduardo

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.