Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [PHP]upload pdf

  1. #1

    [PHP]upload pdf

    Salve a tutti!,
    Sto cercando di uplodare un file pdf su un db mysql ma non riesco a inviarlo correttamente mentre se lo carico dal db poi ho problemi nel visualizzarlo.
    Indicazioni/suggerimenti?

    questo è quello che ho sul db

    id_articolo int/11 auto increment key
    titoli text
    abstract medium text
    id_pdf int
    pdf longblob
    data date

    questo è il form:



    Codice PHP:
    <form action="upload.php" method="post" enctype="multipart/form-data">ù
    <TEXTAREA cols=50 name"titoli" rows=2>
    Qui va il titolo
    </TEXTAREA>




    <
    TEXTAREA cols=50 name"abstract" rows=5>
    Qui va l'abstarct
    </TEXTAREA>




    <input type="file" name="pdf">
    <input type="hidden" name="MAX_FILE_SIZE" value="10000">


    <input type="text" name="data" />  gg/mm/aaaa


    <input type="submit" name="invia" value="Invia dati"/></td>
    </tr>
    </table>
    </form> 
    questo invece è il file upload:

    Codice PHP:
    <?php
                
    if(isset($_SESSION['autorizza'])){
                if(isset(
    $_POST['invia'])){
                                    
    $titoli=$_POST['titoli'];
                                    
    $abstract=$_POST['abstract'];
                                    
    $data=$_POST['data'];
                                    function 
    is_uploaded($postname) {
        if (!isset (
    $_FILES[$postname]) || strcmp ($_FILES[$postname], "none") == || $_FILES[$postname]['size'] < 1) return 0;
        else return 
    1;
    }

    if (
    is_uploaded("pdf")) {
        
    // MEMORIZZIAMO IL CONTENUTO DEL FILE
        
    $nome_del_file "";
        
    //ESTRAZIONE..
        
    $pdf =  addslashes(fread(fopen($_FILES["file"]["tmp_name"], "rb"), $_FILES["file"]["size"]));
        
    //IL FILE E' PRONTO PER IL MYSQL
        
        // $pdf -> mysql
        //USCENDO DAL MYSQL IL FILE SUBIRA' AUTOMATICAMENTE UNO STRIPSLASHES
        //CHE QUINDI CON MYSQL NON SARA' NECESSARIO INSERIRE
        
    $pdf stripslashes($pdf); // mysql -> $pdf da mysql non necessario
        
        // ESEGUIAMO LA QUERY DI INSERIMENTO

        
    Header('Content-Type: application/pdf');
        
        if(isset( 
    $HTTP_SERVER_VARS['HTTP_USER_AGENT'] ) && strpos$HTTP_SERVER_VARS['HTTP_USER_AGENT'], 'MSIE')) {
            
    Header('Content-Type: application/force-download');
        } else {
            
    Header('Content-Type: application/octet-stream');
        }
        
    Header('Content-Length: '.strlen($pdf));
        
    Header('Content-disposition: attachment; filename='.$nome_del_file);
        echo 
    $pdf;
        exit();
    }
                            
                include(
    'connessione.php');
            
    $query="INSERT INTO id_articolo (titoli,abstract,pdf,data) VALUES('$titoli','$abstract','$pdf','$data')";
                                        if(
    mysql_query($query,$connection)){
                                        }else{
                                            echo 
    "<span class=\"style1\">errore di inserimento!!!</span>";
                                        }
                                        echo 
    "<span class=\"style1\">L'articolo &egrave; stato inserito correttamente</span>";            
                                }
                        }else{
                            print 
    "<span class=\"style1\">Per effettuare operazioni in questa sezione è necessario effettuare il login!
    </span>"
    ;    
                            print 
    "<a href=\"index.php\">Torna indietro...</a>";
                        } 
    ?>

    mentre per visualizzarlo ho scritto cosi ma nulla:
    Codice PHP:
    echo"<td><a href=\"pdf-reader.php?id=id_pdf\">scarica pdf<a/></td>\n"
    mi dice quando prova a scaricare il pdf mi manda a pagina insistente

    AIUTI/CONSIGLI
    grazie

  2. #2
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087
    il suggerimento è di non caricarlo in un db.
    In passato ho provato con immagini o file di formato diverso, appesantiscono il db e si corrompono facilmente nella visualizzazione.
    Ho risolto creando nel db dei riferimenti univoci ai file (nomi, probabilmente dimensioni, estensioni ecc..) ed immagazzinare i file in una o + cartelle, probabilmente anche create dinamicamente.
    Nella selezione dei file, da parte del visitatore o utente, si fa riferimento alla ricerca (o altro) nel db e da questo si punta a scaricare il file dalle cartelle di storage.

  3. #3
    ok...ho fatto cosi e mi sa che funziona il file uplodato viene ospitato su una cartella upload che ho messo sul sito,ma poi per visualizzarla come devo procedere
    se ci scrivo
    Codice PHP:
     echo"<td>$riga[pdf]</td>\n"
    mi visualizza dove il file è ospitato...

    cioè: d:hostingphpuploadtempphp7E.tmp

    mi dai qualche consiglio per il visualizza?

  4. #4
    up

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 © 2024 vBulletin Solutions, Inc. All rights reserved.