Insert PDF

1

I have a problem with the PDF insertion code because the file name is not sent to the database. The code I'm referring to is this:

Form:

<form  id="novoEventoForm" action="?page=docs_com&insert=new" enctype="multipart/form-data" method="POST">

PHP:

<?php

$pathToSave = $_SERVER["DOCUMENT_ROOT"] . "psoeiras.pt/documentos/";

/*Checa se a pasta existe - caso negativo ele cria*/
if(!file_exists($pathToSave))
{
    mkdir($pathToSave);
}

if( $_FILES ) 
{ // Verificando se existe o envio de arquivos.

    if( $_FILES['new_texto'] ) 
    { // Verifica se o campo não está vazio.

        $dir = $pathToSave; // Diretório que vai receber o arquivo.
        $tmpName = $_FILES['new_texto']['tmp_name']; // Recebe o arquivo temporário.

        $name = $_FILES['new_texto']['name']; // Recebe o nome do arquivo.

        preg_match_all('/\.[a-zA-Z0-9]+/', $name , $extensao);
        if(!in_array(strtolower(current(end($extensao))), array('.txt','.pdf', '.doc', '.xls','.xlms')))
        {
             echo ('Permitido apenas arquivos doc,xls,pdf e txt.');
        }

        // move_uploaded_file( $arqTemporário, $nomeDoArquivo )
        if( move_uploaded_file( $tmpName, $dir . $name ) ) 
        { // move_uploaded_file irá realizar o envio do arquivo.               
            echo ('Arquivo adicionado com sucesso. ' );                  
        } else 
        {                  
            echo ('Erro ao adicionar arquivo.' );                    
        }

    }

}

And the form for inserting the PDF is this

<span for="new_texto" style=" display: block; float: left;    padding: 10px;  margin-top: 10px;       padding-top: 8px;     height:20px;  padding-bottom: 7px;    background-color: #111; position: absolute;     /* color: beige; */     width: 79px;       text-align: center;  /* padding-left: 25px; */">Documento</span>
<input type="file" name="new_texto" value=""  style="color:black; display: block; border-radius: 0px; outline-color: #0489b1; margin-left: 101px; margin-top: 10px;  width: 472px;"/>

PHP Insert Code

if($_GET['insert'])
    {   
      $new_pagina = strip_tags(trim($_POST['new_pagina']));
        $new_etiqueta = strip_tags(trim($_POST['new_etiqueta']));
        $new_dia = strip_tags(trim($_POST['new_dia']));
        $new_mes = strip_tags(trim($_POST['new_mes']));
        $new_ano = strip_tags(trim($_POST['new_ano']));
        $new_titulo = strip_tags(trim($_POST['new_titulo']));
        $new_texto = strip_tags(trim($_POST['new_texto']));
        $new_tipo = strip_tags(trim($_POST['new_tipo']));




        $updateSlideshow = mysql_query("INSERT INTO documentos
                                        VALUES('',
                                                '".mysql_real_escape_string($new_pagina)."',
                                                '".mysql_real_escape_string($new_etiqueta)."',
                                                '".mysql_real_escape_string($new_dia)."',
                                                '".mysql_real_escape_string($new_mes)."',
                                                '".mysql_real_escape_string($new_ano)."',
                                                'on',
                                                '".mysql_real_escape_string($new_titulo)."',
                                                '".mysql_real_escape_string($new_texto)."',
                                                '".mysql_real_escape_string($new_tipo)."',
                                                ''

                                                 ) ") or die('1.7231»'.mysql_error()); 
    }
    
asked by anonymous 09.12.2014 / 10:33

1 answer

2

If your idea is to get the name of the file as well

$new_texto = strip_tags(trim($_POST['new_texto']));

does not work because it is a file.

You should either use $nome instead of $new_texto :

$new_texto = strip_tags(trim($_POST['new_texto']));

'".mysql_real_escape_string( $new_texto $nome)."',

Or use the file name directly:

$new_texto = $_FILES['new_texto']['name'];
    
09.12.2014 / 12:46