Como fazer uploads de varios arquivos
Salve galerinha,
tenho visto varias duvidas sobre multiplos uploads vindo do formulário, então resolvi fazer esse tutorial explicando como enviar varios arquivos e gravando no bd.
então vou explicar as as funções que usarei nesse tutorial.
Função move_uploaded_file : http://www.php.net/manual/pt_BR/function.m...loaded-file.php
essa função upda o arquivo para o diretorio informado, caso ela não consiga enviar retorna um erro.
Função substr : http://www.php.net/manual/pt_BR/function.substr.php
essa função imprime a quantidade de caracteres informados, pode ser de tras para fentre, basta coloca o - na quantidade de caracteres.
Função strtolower : http://www.php.net/manual/pt_BR/function.strtolower.php
Função será responsavel para colocar todas as letras da string em minusculas
Função mkdir : http://www.php.net/manual/pt_BR/function.mkdir.php
Função responsável em criar um determinado diretorio.
usamos essa função dentro de um if de uma verificação da função file_exists, se o retorno da função for falso usamos a função mkdir para criar o diretorio.
Função file_exists : http://www.php.net/manual/pt_BR/function.file-exists.php
Função informada acima, que tem pela sua definição em verificar se existe ou não o diretorio.
bem algumas funções foram informadas, agora vamos para a lógica.
Primeiro vamos criar o formulário com as campos files.
<html><body>Enviando varios arquivos usando um array<form action="up_varios.php" method="post" enctype="multipart/form-data"><!-- nesse form abaixo eu indico o nome através de um array -->Imagem: <input type="file" name="files[]" /><br>Imagem2: <input type="file" name="files[]" /><br>Imagem3: <input type="file" name="files[]" /><br>Imagem4: <input type="file" name="files[]" /><br>Imagem5: <input type="file" name="files[]" /><br><input type="submit" value="Enviar varios" /></form></body></html>
Pronto o formulário para envio está pronto agora vamos desenvolver o arquivo para receber essa imagens.
Pagina up_varios.php
<?php
//vamos explicar essa parte aqui.
$con = "conexao.php";
//recebo o caminho do arquivo conexão na variável $con.
//verifico nesse primeiro if se o caminho recebido é valido.
if(file_exists($con)){
//se não for valido, pedo o endereço e baixo 1 nivel o mesmo que "../".
//e crio uma nova variácel de conexão
$novaCon = $_SERVER['DOCUMENT_ROOT']."/$con";
//verifico se a nova variável é existente ou nao.
if(!file_exists($novaCon)){
// se não existir na sugunda tentativa, saio do programa.[
exit("A conexão com o banco de dados, não pode ser estabelecida, contat o administrador.");
}
else{
//se a segunda reuisição existir incluo usando a função require_once
require_once($novaCon);
}
}
else {//se a primeira ja for válida ja incluo a conexão informada na variável.
require_once($con);
}
//aqui verificamos se o diretorio existe;$dir = "imagens/"
if(!file_exists($dir)){
mkdir($dir);
//bem em servidores linux, você precisa permitir o acesso as pastas.
/*
chmod($dir,777);
*/
//aqui vamos utilizar a quantidade fixa de uploads
for($i=0;$i < 5; $i++){
$erro= "";
//vamos receber essas imagens.[/color]
$foto = $_FILES["files"]["name"][$i];
$fotoType = $_FILES["files"]["type"][$i];
$fotoSize = $_FILES["files"]["size"][$i];
$fotoTmp = $_FILES["files"]["tmp_name"][$i];
$fotoNova = strtolower($foto);
$diretorio = $dir.$fotoNova;
//pronto recebemos e indicamos
/* assim vale pela necesskidade de cada codigo, podemos renomear ou verificar o tipo da imagem*/
//vamos usar o substr para verificar a extenção
if(substr($foto,-4) != ".jpg"){
$erro = "Extenção não permitida.";
}
if(empty($foto){
$erro = "Campos nao pode ser vazio.";
//vem essa verificação é para indicar quie todos os campos devem estar preenchidas
}
if($fotoSize > "20000"){
$erro = "Arquivo é maior que o permitido.";
}
if($erro != ""){
echo $erro;
}
else{
//aqui se todas as informação forem verdadeiras faço o up e gravo no banco.
$up = move_uploaded_file($fotoTmp,$diretorio);
if(!$up){
echo 'Erro ao enviar arquivo';
//antes de gravar vejo se o arquivo foi upado, caso contrario para por aqui mesmo.
exit;
}
else{
// se upar gtavo no banco.
$query = mysql_query("INSERT INTO imagens(foto) values('$fotoNova')");
if($query != 0){
echo "Arquivos enviados. $i";
}
else{
echo "Erro.";
}
}
?>
Pronto a pagina up_varios.php ja está pronto e recebendo os arquivos. então agora vamos para o arquivo de conexão.
bem é simples.
<?php
$con = mysql_connect("localhost","root","123456") or die(mysql_error());
$db = mysql_select_db("imagens",$con)) or die(mysql_error());
?>
arquivo de conexão pronto.
vamos para a tabela.
CREATE TABLE imagens
(
id int,
imagens varchar(30)
);
bem simples.
bem espero que gostem..
e quem tiver ideia os melhorias. so informar.
:)
abraço a todos.
Discussão (6)
Carregando comentários...