Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di dordy
    Registrato dal
    Aug 2003
    Messaggi
    75

    modificare estensione download

    Ciao a tutti,

    ho questo script (scaricato da html e adattato) che impone l'estensione dei files da scaricare.

    <?
    $extension = ".pdf";
    $counterdir = "counter/";
    $textfont = "Verdana,Arial";
    if (file_exists("$get$extension")) {
    $count = 0;
    //header("Location: $get$extension"); // download the file [download.php?get=name_of_file]
    header("Content-Disposition: attachment; filename=$get$extension");
    readfile("$get$extension");
    $file = fopen("$counterdir/$get.txt","r"); // download counter
    $count = fread($file, 100);
    $countplus = ($count + 1);
    fclose($file);
    $fileb = fopen("$counterdir/$get.txt","w");
    fwrite($fileb, $countplus, 100);
    fclose($fileb);
    $logstr = $get;
    $logstr = $logstr . "\t" . date("d/m/Y");
    $logstr = $logstr . "\t" . date("H:i:s");
    $logstr = $logstr . "\t" . $REMOTE_ADDR;
    $logstr = $logstr . "\t" . gethostbyaddr($REMOTE_ADDR) . "\n";
    $fileb = fopen("$counterdir/log.txt","a");
    fwrite($fileb, $logstr, 100);
    fclose($fileb);
    }
    else {
    echo "<font face=$textfont size=2>";
    echo "<center>

    Questo file [$get$extension] non può essere scaricato.";
    }
    ?>

    vorrei far si che si potessero implementare altre estensioni decise da me (es: doc, xlm, mpeg ecc . . .) ma non riesco a modificarlo.

    Dove devo intervenire?

    Grazie.
    CIVIS ROMANVS SVM

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Nella prima riga

  3. #3
    Utente di HTML.it L'avatar di dordy
    Registrato dal
    Aug 2003
    Messaggi
    75
    Originariamente inviato da luca200
    Nella prima riga
    $extension = ".pdf";

    ho provato in diversi modi

    $extension = ".pdf, .doc, .mpeg";

    ma legge sempre il primo dato
    CIVIS ROMANVS SVM

  4. #4
    e se creassi un array con le estensioni consentite e poi impostassi come condizione nell'if, la funzione in_array(Estensione, ArrayEstensioni)?
    "...non può piovere per sempre..."

  5. #5
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Codice PHP:
    $extension ".pdf";
    $extension2 ".doc";
    $extension3 ".mpeg";
    $counterdir "counter/";
    $textfont "Verdana,Arial";
    if (
    file_exists("$get$extension") || file_exists("$get$extension2") || file_exists("$get$extension3")) {
    ......... 
    Prova cosi


  6. #6
    Utente di HTML.it L'avatar di dordy
    Registrato dal
    Aug 2003
    Messaggi
    75

    Il_Drugo

    Si riesce a leggerli e scaricarli, ma il contenuto è rovinato . . .
    dobbiamo lavorare sull' header e l'attachment

    ho provato così

    header("Content-Disposition: attachment; filename=$get$extension");
    header("Content-Disposition: attachment; filename=$get$extension2");
    header("Content-Disposition: attachment; filename=$get$extension3");

    ma non va
    CIVIS ROMANVS SVM

  7. #7
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Codice PHP:
    <?
    $extensions 
    = array(".pdf"".doc"".mpeg");
    $counterdir "counter/";
    $textfont "Verdana,Arial";
    for(
    $i=0;$i<count($extensions);$i++)
    {
        
    $extension $extensions[$i];
        if (
    file_exists("$get$extension")) 
        {
            
    $count 0;
            
    header("Content-Disposition: attachment; filename=$get$extension");
            
    readfile("$get$extension");
            
    $file fopen("$counterdir/$get.txt","r");
            
    $count fread($file100);
            
    $countplus = ($count 1);
            
    fclose($file);
            
    $fileb fopen("$counterdir/$get.txt","w");
            
    fwrite($fileb$countplus100);
            
    fclose($fileb);
            
    $logstr $get;
            
    $logstr $logstr "\t" date("d/m/Y");
            
    $logstr $logstr "\t" date("H:i:s");
            
    $logstr $logstr "\t" $REMOTE_ADDR;
            
    $logstr $logstr "\t" gethostbyaddr($REMOTE_ADDR) . "\n";
            
    $fileb fopen("$counterdir/log.txt","a");
            
    fwrite($fileb$logstr100);
            
    fclose($fileb);
        }
        else 
        {
            echo 
    "<font face=$textfont size=2>";
            echo 
    "<center>

    Questo file [[b]
    $get$extension[/b]] non può essere scaricato.";
        }
    }
    ?>
    Forse cosi funziona...l'unico bug è che se ci sono più di un file con stesso nome ma estensione diversa, non so cosa possa succedere (forse partono più download).

  8. #8
    Utente di HTML.it L'avatar di dordy
    Registrato dal
    Aug 2003
    Messaggi
    75

    mi da questo errore

    Questo file [prospetto.pdf] non può essere scaricato.

    Questo file [prospetto.doc] non può essere scaricato.
    Warning: Cannot add header information - headers already sent by (output started at /var/www/www.marthasand.it/httpdocs/page/download/download.php:31) in /var/www/www.marthasand.it/httpdocs/page/download/download.php on line 11
    CIVIS ROMANVS SVM

  9. #9
    Utente di HTML.it L'avatar di dordy
    Registrato dal
    Aug 2003
    Messaggi
    75
    ho provato aggiungendo

    header ("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header ("Content-Type: application/octet-stream");
    header ("Content-Length: " . filesize($percorso));
    header ("Content-Disposition: attachment; filename=$get$extension");
    readfile($get$extension);

    . . .
    CIVIS ROMANVS SVM

  10. #10
    Utente di HTML.it L'avatar di dordy
    Registrato dal
    Aug 2003
    Messaggi
    75

    Stop

    Per oggi chiudo.

    Ciao e grazie
    CIVIS ROMANVS SVM

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.