Jump to content


Photo

Mandar Para O Server E Gravar No Db


  • Faça o login para participar
2 replies to this topic

#1 Batata

Batata

    Turista

  • Usuários
  • 45 posts
  • Sexo:Não informado

Posted 06/09/2005, 12:09

Olá,

estou tentanto fazer um script enviar um arquivo para o servidor e gravar o nome dele no banco de dados, mais não estou tendo sucesso, ja li varios topicos sobre o assunto mais não sai nada.

Ele é um sisteminha simples, tem alguns input numa pagina chamada cadastra.php que são enviados no metodo POST para a pagina inserir.php
Não aparece nenhuma mensagem de erro, ele apenas não envia a imagem e não grava nada no banco de dados...


cadastra.php (exemplo)
<form action='inserir.php' method='post' enctype="multipart/form-data" name="up_form" id="up_form">
<input name="arquivo" type="file" class="caixa" id="arquivo" size="25">
<input type="text" name="descricao" size="51" class="caixa">

<input name="enviar" onclick="desabilita();" type="submit" class="botao" id="enviar" style="border: 1px #000000 solid" value="Enviar">

inserir.php
<? include "valida_login.php"; ?>
<link href="css.css" rel="stylesheet" type="text/css">
<? include "valida_login.php"; ?>
<link href="css.css" rel="stylesheet" type="text/css">
<?php
include("includes/config.php");

//UpLoad da Imagem e Gravar no Banco de dados
$nome = $_FILES["arquivo"]["name"]; //pega o nome do arquivo
$temp_nome = $_FILES["arquivo"]["tmp_name"]; //pega o "temp" do arquivo
$tipo = $_FILES["arquivo"]["type"]; //pega o tipo do arquivo
$tamanho = $_FILES["arquivo"]["size"]; //pega o tamanho do arquivo
$t_maximo = 200000000; //tamanho máximo do arquivo - em bytes
$diretorio = "/uploads/"; //pasta onde o arquivo será gravado

if ($nome == "") {  //checa se o campo não foi enviado vazio
  $erro = "Escolha um arquivo á ser enviado";
} elseif (ereg("[][><}{)(:;,!?*%&#@]", $nome)) {  //checa caracteres inválidos (aconselho não modificar)
  $erro = "O nome do arquivo contém caracteres inválidos";
} elseif ($tamanho > $t_maximo) {  //checa se o arquivo não ultrapassou o limite
  $erro = "O tamanho máximo permitido é de 2MB";
} elseif (!eregi("[gif|jpeg|jpg]", $tipo)) { //checa a extensão do arquivo - para liberar mais tipos, apenas acrescente "|extensão do arquivo" ex: [gif|jpeg|jpg|png]
  $erro = "Tipo de arquivo inválido";
} elseif (!is_file($nome)) { //checa se é mesmo um arquivo
  $erro = "Selecione um <u>arquivo</u> á ser enviado";
} elseif (is_dir($nome)) { //checa se não é um diretório
  $erro = "Selecione um <u>arquivo</u> á ser enviado";
} elseif (file_exists("$diretorio"."$nome")) { //checa se o arquivo já existe no diretório
  $erro = "Já existe um arquivo com este nome, por favor, renomeie-o";
}
if ($erro == "") { //se não ocorreram erros, vamo gravar o arquivo no server e no db
move_uploaded_file($temp_nome, $diretorio.$nome); //grava o arquivo na pasta do server que foi especificada
$insert = " INSERT INTO arquivos (url) VALUES ('$nome') "; //gravando os dados no db
$sql_ins = mysql_query($insert) or die ("Não foi possível inserir os valores no banco de dados"); // ''
}




// Aqui ele verifica se as variaves estão vazias

     if(empty($_POST['titulo']) || empty($_POST['descricao']) || empty($_POST['area']) || empty($_POST['dupli']))
     {
        echo "<script>window.alert(\"Todos os campos são Obrigatórios\");</script>";
        }
     elseif(isset($erro))
     {
     echo "<script>window.alert(\"Não foi possivel Adicionar a noticia.\");</script>";
     }
      else
      {

$sql = "INSERT INTO arquivos (titulo, descricao, autor, site, data, cliques, imagem, area, dupli) VALUES ('$titulo', '$descricao', '$autor', '$site', '$data', '$cliques', '$imagem', '$area', '$dupli')";
//Agora é hora de contatar o mysql
//Inserindo os dados
$sql = mysql_query($sql)
or die("Houve erro na gravação dos dados, por favor, clique em voltar e verifique os campos obrigatórios!");
echo "<script>window.alert(\"Download adicionado com sucesso!!!\");</script>";
 }
echo "<meta http-equiv='refresh' content='0;URL=cadastra.php'>";

?>


Obrigado. (y)
-------------------------------------------------------------
Concurso Ok Masters!

Ganhe um Template personalizado e 3 meses de Hospedagem (GRÁTIS)


Clique aqui e saiba como !!!
-------------------------------------------------------------

#2 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 06/09/2005, 12:27

As variáveis são recebidas corretamente?
O upload é enviado para a pasta temporária?
Klaus Paiva
Conheça também: Taperás

#3 Batata

Batata

    Turista

  • Usuários
  • 45 posts
  • Sexo:Não informado

Posted 06/09/2005, 12:37

Olá Klaus, consegui de outra maneira...

$dirm = "C:/WebServer/www/site/download/uploads/";
$temp = $HTTP_POST_FILES["arquivo"]["tmp_name"];
if(is_uploaded_file($temp)) {

      $name = $HTTP_POST_FILES["arquivo"]["name"];
      $path = $path = $dirm.$name;

      if(!(@copy($temp, ($path))))
           $error = "O arquivo \'" . $path . "\' não pode ser criado";

      @chmod ($path, 0777);
}
$sql = "INSERT INTO arquivos (url) VALUES ('$path')";
$sql = mysql_query($sql)
or die("Houve erro na gravação dos dados, por favor, clique em voltar e verifique os campos obrigatórios!");
echo "<script>window.alert(\"Download adicionado com sucesso!!!\");</script>";

As variaveis estavam chegando corretamente
Mais ele não enviava para a pasta temporaria :)

Obrigado (y)
-------------------------------------------------------------
Concurso Ok Masters!

Ganhe um Template personalizado e 3 meses de Hospedagem (GRÁTIS)


Clique aqui e saiba como !!!
-------------------------------------------------------------




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq