Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente bannato
    Registrato dal
    Jun 2005
    Messaggi
    56

    Strano problema download file

    Ciao,
    ho creato uno script per il download di un file seguendo alcune indicazioni trovate in un 3D di questo forum.
    lo script è il seguente:

    include("server.php");
    session_start();
    ..interrogo il database ..
    ..
    ..
    $file="./directory_Allegati/".$row["file"];
    header("Content-Type: $row[tipofile]");
    header("Content-Disposition: attachment; filename=\"".$row["file"])."\"";
    header("Content-Length: ".filesize($file));
    header("Content-Transfer-Encoding: binary");
    readfile($file);

    lo script funziona alla grande (con questo script riesco a nascondere all'utente la path dove si trovano fisicamente sul server i file).
    la finestra x il download compare con le opzioni di salvataggio o apertura immediata del file.
    Se l'utente clikka su APRI.. viene generato un errore (x es. se il file è un doc di word, word si apre e poi compare un errore)
    Se l'utente clikka su salva e successivamente apre il file dal suo HD.. tutto funziona correttamente.

    Grazie...

  2. #2
    Io questo problema l'ho riscontrato su IE e ancora non ho trovato soluzione.

    Per risolverlo devi togliere session_start()

    Se come nel mio caso ti serve controllare se un utente è loggato devi inventarti un controllo alternativo, io ad esempio mi passo dei valori hashati per vedere se ha cliccato il link da utente loggato.

    In questo modo i file sono aperti a tutti ma soltanto gli utenti loggati e proprietari del file possono conoscere il link giusto che è composto da una stringa fissa e 2 stringhe variabili di 32 carateri.

    Ciao

  3. #3
    Utente bannato
    Registrato dal
    Jun 2005
    Messaggi
    56
    ora provo...grazie!!!!!

  4. #4
    Originariamente inviato da bubu77
    Io questo problema l'ho riscontrato su IE e ancora non ho trovato soluzione.
    la soluzione è non inviare alcun header / testo / spazio vuoto / codice html alla pagina prima di fare il download.

    Il link al download, se "segreto" può contenere l'id di sessione appeso oppure l' id univoco per l'utente.

    mydownload.php?file=test.doc&uid=ASDAS76361287326

    nella pagina di download, che deve essere dedicata e mai usata per scrivere o comunicare qualcosa poichè deve essere vista esattamente come se fosse un file(dove gli headers per la sessione, ad esempio, non sono possibili) puoi connetterti al db, verificare il login e solo in caso di successo richiamare, ad esempio, questa: http://www.devpro.it/php4_id_72.html


    P.S. l' uid dell' utente può anche essere l' accoppiata user e pass hashata ... select privilege from table where md5(user,pass) = uid ... o qualcosa di simile
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.