Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Dounload file con autenticazione

    Ciao, vorrei permettere il dounload file pdf solo per gli utenti loggati. Per l'autenticazione e tutto il resto non ho problemi, ma dove posso mettere i file .pdf in modo che non siano visibili quando inserisco il percorso direttamente nel browser?
    Grazie
    Daniele

  2. #2
    peccato se parlavi di daunload avrei potuto aiutarti

  3. #3

  4. #4
    Ho letto l'articolo sopra riportato.
    Io ho un server linux su aruba, ho creato una cartella cambiando i permessi, ho impostato chmod 711 a adesso quando cerco di accedere alla cartella o inserisco l'indirizzo di un file pdf contenuto un quella cartella mi esce sul browser:

    You don't have permission to access /prova/doc.pdf on this server.

    Ora in che modo, tramite php, faccio scaricare quel file pdf?

  5. #5
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    ...per la verità sulla guida NON c'era scritto di modificare i permessi della cartella.
    I permessi di cui parli valgono all'INTERNO del server e definiscono chi può accedere al file (cartella) e cosa può farci, ma relativamente agli utenti LOCALI al serevr.

    Utente locale è anche l'utente con cui gira Apache sul server.

    Probabilmente gli hai impedito a questo punto di accedere a tale file (parli di permessi 711, ma riferiti a chi???? Chi è l'utente/gruppo possessore???? [chown] )

    Leggi meglio la guida.
    Ciao.

    [.:: JaguarXF ::.]
    __________________

  6. #6
    Sto guardando un po' in giro e copiando degli esempi:
    il file che chiamo dal browser è "provadoc.php":

    <?php
    $file_mime = "application/pdf";
    header("Content-Type: $file_mime");
    readfile("prova/doc.pdf");
    ?>

    Così ottengo di aprire un file .pdf (tramite il browser) che non posso leggere se inserisco il percorso direttamente nel browser. Ho raggiunto il mio scopo, certo nella pagina "provadoc.php" dovrò verificare se l'utente ha effettuato il login, ma questo già so farlo (grazie el forum).

    Ora vedo come far partire il download invece di aprire il file nel browser...

    Daniele

  7. #7
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    Dipende dal tipo di file che devi aprire.
    Ti consiglio di copiare quanto è scritto nella guida e partire da là.
    Ciao.

    [.:: JaguarXF ::.]
    __________________

  8. #8
    Ok, io parto da qui:

    <?php
    $nome_file = "doc.pdf";
    $percorso_assoluto = "prova/";
    header("Content-Type: application; name=".$nome_file);
    header("Content-Transfer-Encoding: binary");
    //header("Content-Length: ".$dimensione_file);
    header("Content-Disposition: inline; filename=".$nome_file);
    header("Expires: 0");
    header("Cache-Control: no-cache, must-revalidate");
    header("Cache-Control: private");
    header("Pragma: public");
    readfile($percorso_assoluto.$nome_file);
    ?>

    Però ho dovuto trasformare in commento la riga 6 perché non conosco la dimensione del file.
    Cercherò di capire la differenza anche se il risultato è uguale...
    Ciao

  9. #9

  10. #10
    Ecco quello che ho capito ?>

    - per visualizzare il file pdf:

    <?php
    $nome_file = "doc.pdf";
    $percorso_assoluto = "prova/";
    if (file_exists($percorso_assoluto . $nome_file)) {
    $dimensione_file = filesize($percorso_assoluto . $nome_file);
    header("Content-Type: application; name=".$nome_file);
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".$dimensione_file);
    header("Content-Disposition: inline; filename=".$nome_file);
    header("Expires: 0");
    header("Cache-Control: no-cache, must-revalidate");
    header("Cache-Control: private");
    header("Pragma: public");
    readfile($percorso_assoluto.$nome_file);
    } else {
    echo "Il file $nome_file non esiste";
    }
    ?>

    - per salvare il file:

    <?php

    $nome_file = "doc.pdf";
    $percorso_assoluto = "prova/";
    if (file_exists($percorso_assoluto . $nome_file)) {
    $dimensione_file = filesize($percorso_assoluto . $nome_file);
    header("Content-Type: application; name=".$nome_file);
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: " . $dimensione_file);
    header("Content-Disposition: attachment; filename=\" . $nome_file);
    header("Expires: 0");
    header("Cache-Control: no-cache, must-revalidate");
    header("Cache-Control: private");
    header("Pragma: public");
    readfile($percorso_assoluto . $nome_file);
    } else {
    echo "Il file $nome_file non esiste";
    }

    Grazie per la collabirazione!

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.