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.