Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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']; $foto = array();
$aux = $_FILES['foto'.$numfoto]['name'];
$foto[$numfoto] = $aux;//$_FILES['foto'.$numfoto]['name'];
$numfoto++;
}
$numfoto = 0; ECHO $foto[$numfoto];
$numfoto++;
}
?>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 775702Ok, 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
hummm ele criou um array multidimensional.
Agora deu certo.
Obrigado pela colaboração.
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:
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
Agora é só manipular os dados e copiar os arquivos.