Ir para conteúdo

POWERED BY:

Arquivado

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

almap

Upload Multiplas fotos no PHP

Recommended Posts

Olá pessoal, desculpem-me se este tópico não estiver na área correta. É o seguinte, estou tentando enviar 3 imagens para uma pasta e gravar apenas o nome delas no banco de dados MYSQL. Eu estou conseguindo enviar apenas a primeira imagem das 3. Segue o meu código:

 

 

 

if($function == "cadastrar"){

if(!$_FILES) {
echo "Nenhum arquivo selecionado para envio!";
}

else{
$file_name = $_FILES['foto1']['name'];
$file_name2 = $_FILES['foto2']['name'];
$file_name3 = $_FILES['foto3']['name'];

$file_size = $_FILES['foto1']['size'];
$file_size2 = $_FILES['foto2']['size'];
$file_size3 = $_FILES['foto3']['size'];

$file_tmp_name = $_FILES['foto1']['tmp_name'];
$file_tmp_name2 = $_FILES['foto2']['tmp_name'];
$file_tmp_name3 = $_FILES['foto3']['tmp_name'];

$numero1 = rand(1,99999);
$numero2 = rand(1,999);
$numero11 = rand(1,99999);
$numero22 = rand(1,999);
$numero111 = rand(1,99999);
$numero222 = rand(1,999);

$nomeArquivo = ($numero1 * $file_size) * $numero2;
$extensao = pathinfo($file_name, PATHINFO_EXTENSION);
$foto1 = $nomeArquivo . "." . $extensao;

$nomeArquivo2 = ($numero11 * $file_size2) * $numero22;
$extensao2 = pathinfo($file_name2, PATHINFO_EXTENSION);
$foto2 = $nomeArquivo2 . "." . $extensao2;

$nomeArquivo3 = ($numero111 * $file_size3) * $numero222;
$extensao3 = pathinfo($file_name3, PATHINFO_EXTENSION);
$foto3 = $nomeArquivo3 . "." . $extensao3;

$tamanhoArquivo = $file_size / 1024;
$tamanhoArquivo2 = $file_size2 / 1024;
$tamanhoArquivo3 = $file_size3 / 1024;
}

if (($extensao != "jpg") && ($extensao2 != "jpg") && ($extensao3 != "jpg")) {
echo "Erro ao selecionar o arquivo!";
}

elseif(!move_uploaded_file($file_tmp_name, $destino." \\" . $foto1) && !move_uploaded_file($file_tmp_name2, $destino." \\" . $foto2) && !move_uploaded_file($file_tmp_name3, $destino." \\" . $foto3) ) {
echo "Erro ao selecionar o arquivo!";
} else {

$insert = $pdo->prepare("INSERT INTO veiculo(id_marca, id_modelo, ano, estado, preco, foto1, foto2, foto3) VALUES (:id_marca, :id_modelo, :ano, :estado, :preco, :foto1, :foto2, :foto3)");
$insert->bindValue(":id_marca", $id_marca);
$insert->bindValue(":id_modelo", $id_modelo);
$insert->bindValue(":ano", $ano);
$insert->bindValue(":estado", $estado);
$insert->bindValue(":preco", $preco);
$insert->bindValue(":foto1", $foto1);
$insert->bindValue(":foto2", $foto2);
$insert->bindValue(":foto3", $foto3);
$insert->execute();

header('Location:pgveiculo.php?action=listar');

}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente, habilite todas as exibições de erro, como mostrado neste tópico, na Orientação No. 2. Isso vai exibir possíveis erros.

 

Seu if com os 3 move_uploaded_file deveria usar "||" em vez de "&&", uma vez que o erro deveria ser exibido se qualquer um dos move_uploaded_files falharem, certo?

 

Para gerar os nomes aleatórios, recomendo usar uniqid(). rand() multiplicado pelo tamanho do arquivo pode gerar nomes repetidos, mesmo que essa probabilidade seja baixa.

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.