Visualizzazione dei risultati da 1 a 8 su 8

Discussione: upload file pdf o doc

  1. #1

    upload file pdf o doc

    Ciao,
    sto cercando di modificare questo script per poter effettuare l'update solo di file pdf e doc, e devono essere vietati tutti gli altri tipi di file (php, html, asp, gif, jpg,tiff, zip, ecc).

    Poi i file devono poter essere selezionati tramite maschera php per essere visualizzati.

    Lo script che attualmente utilizzo per l'upload delle immagini è il seguente:

    Codice PHP:
    <?php
    // se è stato inviato il file...
    if(isset($_POST['invia']))
    {
        
    // se ci sono stati problemi nell'upload del file
        
    if(!isset($_FILES['file_inviato']) OR $_FILES['file_inviato']['error'] != UPLOAD_ERR_OK)
        
    mostra_form("errore nell'invio del file. Riprova");

        
        
    // connessione e selezione del database
        
    mysql_connect('localhost''USER''PASSW')
        or die(
    'Connessione non riuscita: ' mysql_error());

        if(!
    mysql_select_db('DB'))
        die(
    'Selezione database fallita!');

        
    // recupero alcune informazioni sul file inviato
        
    $nome_file_temporaneo $_FILES['file_inviato']['tmp_name'];
        
    $nome_file_vero $_FILES['file_inviato']['name'];
        
    $tipo_file $_FILES['file_inviato']['type'];
        


        
    // leggo il contenuto del file
        
    $dati_file file_get_contents($nome_file_temporaneo);

        
    // preparo il contenuto del file per la query
        
    $dati_file addslashes($dati_file);
        
        
    // query per inserire il file nel DB
        
    $query "UPDATE TABELLA SET
                    nome_file =  '
    $nome_file_vero',
                    tipo_file = '
    $tipo_file', 
                    dati_file = '
    $dati_file' WHERE CODICE = '$CODICE'"
                    
        
    mysql_query($query)
        OR die(
    'Query non valida: ' mysql_error());

        
    // mostro nuovamente il form ed un messaggio di successo
        
    mostra_form(" CARICATO");
    }
    else
    {
        
    mostra_form();
    }

    /**
    * Mostra il form per l'upload del file 

    */ 
    function mostra_form($messaggio '')
    {
        
    ?> <?php echo $messaggio?> <?php 
        
    exit();
    }
    ?>
    Il campo del db è sufficiente che sia di tipo blob o devo dargli qualche altra proprietà??

    Grazie

  2. #2
    Per il tipo di file potresti usare in_array (non usando quindi mille if ed end)

    Codice PHP:
    $est = array('text/docx','text/pdf');

    if(!
    in_array($_FILES['file_inviato']['type'], $est)) {
    // Non è del tipo giusto
    } else {
    // Esegui upload

    Non so il mimetype dei documenti doc e pdf, quindi dovrai modificar text/docx e text/pdf con quelli corretti. Uso in_array per far in modo di poter aggiungere estensioni in modo semplice senza dover modificare molto
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  3. #3
    Grazie mille!

    ho provato ma restituisce una pagina bianca.

    Mi potesti postare il mio script modificato? magari sbaglio qualche piccolezza.

    grazie

  4. #4
    nessuno che mi sappia dare una mano?

  5. #5
    Originariamente inviato da azocomposto
    nessuno che mi sappia dare una mano?
    il problema dell'estensione è stato risolto.. come facciamo noi a sapere pechè ti da pagina bianca???
    Questa volta, più che un voto.. è favoreggiamento.

  6. #6
    Originariamente inviato da Al_katraz984
    il problema dell'estensione è stato risolto.. come facciamo noi a sapere pechè ti da pagina bianca???

    La pagina bianca non la restituisce più, ma non controlla quali file sto selezionado. Praticamente mi permette di selezionare qualsiasi file, nonostante ci sia il controllo:

    Codice PHP:
    <?php
    // se è stato inviato il file...
    if(isset($_POST['invia']))
    {
        
    // se ci sono stati problemi nell'upload del file
        
    if(!isset($_FILES['file_inviato']) OR $_FILES['file_inviato']['error'] != UPLOAD_ERR_OK)
        
    mostra_form("errore nell'invio del file. Riprova");

        
        
    // connessione e selezione del database
        
    mysql_connect('localhost''USER''PASSW')
        or die(
    'Connessione non riuscita: ' mysql_error());

        if(!
    mysql_select_db('DB'))
        die(
    'Selezione database fallita!');

        
    // recupero alcune informazioni sul file inviato
        
    $nome_file_temporaneo $_FILES['file_inviato']['tmp_name'];
        
    $nome_file_vero $_FILES['file_inviato']['name'];
        
    $tipo_file $_FILES['file_inviato']['type'];
        
    $est = array('text/docx','text/pdf');

    if(!
    in_array($_FILES['file_inviato']['type'], $est)) {
    // Non è del tipo giusto
    } else {
    // Esegui upload
    }

        
    // leggo il contenuto del file
        
    $dati_file file_get_contents($nome_file_temporaneo);

        
    // preparo il contenuto del file per la query
        
    $dati_file addslashes($dati_file);
        
        
    // query per inserire il file nel DB
        
    $query "UPDATE TABELLA SET
                    nome_file =  '
    $nome_file_vero',
                    tipo_file = '
    $tipo_file', 
                    dati_file = '
    $dati_file' WHERE CODICE = '$CODICE'"
                    
        
    mysql_query($query)
        OR die(
    'Query non valida: ' mysql_error());

        
    // mostro nuovamente il form ed un messaggio di successo
        
    mostra_form(" CARICATO");
    }
    else
    {
        
    mostra_form();
    }

    /**
    * Mostra il form per l'upload del file 

    */ 
    function mostra_form($messaggio '')
    {
        
    ?> <?php echo $messaggio?> <?php 
        
    exit();
    }
    ?>
    E' inserito correttamente il controllo?

    Grazie

  7. #7
    quando ti ho scritto

    Codice PHP:
    if(!in_array($_FILES['file_inviato']['type'], $est)) {
    // Non è del tipo giusto
    } else {
    // Esegui upload

    era sottinteso che al posto di // non è del tipo giusto dovrai mettere un messaggio di errore che stopperà tutto, mentre in // Esegui upload le azioni per caricare l' immagine.
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  8. #8
    Originariamente inviato da 0-c00l
    quando ti ho scritto

    Codice PHP:
    if(!in_array($_FILES['file_inviato']['type'], $est)) {
    // Non è del tipo giusto
    } else {
    // Esegui upload

    era sottinteso che al posto di // non è del tipo giusto dovrai mettere un messaggio di errore che stopperà tutto, mentre in // Esegui upload le azioni per caricare l' immagine.
    ok allora ho modificato lo script per l'upload con il pezzo di codice, ma ora restituisce pagina bianca

    ho aggiunto il pezzo di codice all'inizio dello script circa in riga 10.

    Grazie ragazzi per l'aiuto che mi state dando, spero di riuscire a capire come si fa

    Codice PHP:
    <?php
    // se è stato inviato il file...
    if(isset($_POST['invia']))
    {
        
    // se ci sono stati problemi nell'upload del file
        
    if(!isset($_FILES['file_inviato']) OR $_FILES['file_inviato']['error'] != UPLOAD_ERR_OK)
        
    mostra_form("errore nell'invio del file. Riprova");

        
    $est = array('text/docx','text/pdf');
    if(!
    in_array($_FILES['file_inviato']['type'], $est)) {
    echo 
    "Estensione file non permesso. Inserire solo file PDF";
    } else { 
        
        
    // connessione e selezione del database
        
    mysql_connect('localhost''USER''PASSW')
        or die(
    'Connessione non riuscita: ' mysql_error());

        if(!
    mysql_select_db('DB'))
        die(
    'Selezione database fallita!');

        
    // recupero alcune informazioni sul file inviato
        
    $nome_file_temporaneo $_FILES['file_inviato']['tmp_name'];
        
    $nome_file_vero $_FILES['file_inviato']['name'];
        
    $tipo_file $_FILES['file_inviato']['type'];
        


        
    // leggo il contenuto del file
        
    $dati_file file_get_contents($nome_file_temporaneo);

        
    // preparo il contenuto del file per la query
        
    $dati_file addslashes($dati_file);
        
        
    // query per inserire il file nel DB
        
    $query "UPDATE TABELLA SET
                    nome_file =  '
    $nome_file_vero',
                    tipo_file = '
    $tipo_file', 
                    dati_file = '
    $dati_file' WHERE CODICE = '$CODICE'"
                    
        
    mysql_query($query)
        OR die(
    'Query non valida: ' mysql_error());

        
    // mostro nuovamente il form ed un messaggio di successo
        
    mostra_form(" CARICATO");
    }
    else
    {
        
    mostra_form();
    }

    /**
    * Mostra il form per l'upload del file 

    */ 
    function mostra_form($messaggio '')
    {
        
    ?> <?php echo $messaggio?> <?php 
        
    exit();
    }
    ?>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.