Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Nascondere url file

  1. #1
    Utente bannato
    Registrato dal
    Jun 2005
    Messaggi
    56

    Nascondere url file

    Ciao a tutti,
    mi chiedevo se è possibile in PHP nascondere(in qualche modo) l'url di un file in modo tale che gli utenti possono scaricare il file per mezzo di un "link" visibile solo se loggati .

    L'unica idea che mi è venuta, è quella di creare uno script cui, passando una variabile GET di nome "id" ,questo pesca dal database il record con questo "id", legge il campo "nome_allegato" e va a prendere in una cartella predefinita il file e lo fa visualizzare..

    In questo modo il link che l'utente va a clikkare avrà come "codice" il seguente: <a href=preleva_allegato.php?id=14> Apri Allegato </a>
    e non <a href=http://www.miosito.it/pippo/.../allegato.doc> Apri Allegato</a>

    non so se mi sono spiegato bene...
    Questa soluzione l'ho già provata, soltanto che ho un problemino relativo allo script preleva_allegato.php in quanto non so come forzare la richiesta di download del file...

    Incollo qui il codice:

    <?
    //SCRIPT CHE PRELEVA L'ALLEGATO
    include("parametri_mysql.php");
    $query=mysql_query("SELECT * FROM annunci_azienda WHERE id=$_GET[id]");
    $row=mysql_fetch_array($query);
    $url="./cartella_allegati/$row[allegato]";

    echo Header("Content-Type: text");
    echo Header("Content-Disposition: attachment; filename=$url");
    ?>

    La finestra di IE per il download si apre,riconosce il nome del file, solo che il file che scarica è di 0byte...
    Io credo sia un problema di mime_content_type .
    Esiste una funzione ma solo per il PHP 4.3 o superiori...e io volevo una cosa che funzionasse anche su versioni precedenti..

    Se avete altre soluzioni fatemi sapere... TNX

  2. #2
    le righe di codice sono solo queste?
    te lo chiedo perché io ho spesso problemi quando utilizzo le sessioni per controllare se un utente è loggato, in pratica appena aggiungo session_start() non mi scarica + niente (soltanto i.e.) quindi ho risolto non controllando con le sessioni ma con una variabile passata in get derivata da un dato del database che l'utente non loggato non può indovinare

    se usi le sessioni prova a togliere session_start e a provare
    ciao

  3. #3
    Utente bannato
    Registrato dal
    Jun 2005
    Messaggi
    56
    no, le sessioni non le ho ancora implementate.
    anche xkè prima volevo capire se si poteva fare una cosa di questo genere...

    cmq a ME sia IE che Firefox mi fanno scaricare un file di dimensioni 0Byte..
    tu come l'hai risolto?

  4. #4
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    codice:
    header("Content-Type: application; name=\"$NomFile\"");
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: $dim_file");
    header("Content-Disposition: inline; filename=\"$NomFile\"");
    header("Expires: 0");
    header("Cache-Control: no-cache, must-revalidate");
    header("Cache-Control: private");
    header("Pragma: public");
    readfile($NomFile);

    [.:: JaguarXF ::.]
    __________________

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.