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

    scaricare file da server senza l'apertura della finestra di conferma

    Salve a tutti.
    Sto cercando di fare un programma in php che mi permetta, dal lato client, di scaricare dal server piu file (per l'aggiornamento delle versioni) senza che per ognuno si apra la finestrella di convalida del download.
    Problemi:
    1- ho sentito che si potrebbero usare le funzioni curl, ma non so come
    2- ho sentito che si possono usare gli header per forzare il download ma non ho ben capito dove setto il percorso dove salvare ogni file sul computer client

    Ho bisogno di aiuto. Help me

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    442
    Codice PHP:
     echo "<TABLE BORDER=8 WIDTH=40% ALIGN=CENTER BORDER=3>
    <TR><TH>Fai clic sui link per scaricare i file</TH></TR>"
    ;
    # elenco dei contenuti di una cartella con link
    $cartella opendir("upload/".$riga['type']."/");
    while (
    $file readdir($cartella)) {
    $array_file[] =$file;
    }
    foreach (
    $array_file as $file) {
    echo 
    "<TR><TD><CENTER>";
    if ( 
    $file == ".." || $file == ".") {
    continue;
    }
    $dimensioni_file=filesize("upload/".$riga['type']."/".$file);
    $dir="upload/".$riga['type']."/".$file;
    echo 
    "<a href=\"

    download.php?nome_file=
    $file&dimensioni_file=$dimensioni_file&dir=$dir

    \">
    $file</a>,
    "
    ;
    echo 
    "</TR></TD></CENTER>";

    Codice PHP:
    $nome_file=stripslashes($_GET['nome_file']);
    $dimensioni_file=stripslashes($_GET['dimensioni_file']);
    $dir=stripslashes($_GET['dir']);
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: public");
    header("Content-Type: application/html");
    header("Content-Description: File Transfer");
    header("Content-type: Application/octet-stream");
    header("Content-Disposition: attachment; filename=$nome_file");
    header("Content-Description: Download PHP");
    header("Content-Length: $dimensioni_file");
    readfile($dir); 

  3. #3
    Lowenthal, puoi un po spiegarmi passo passo cosa fanno tutte quelle belle robe che mi hai passato, mi faresti un favore visto che non sono ferratissimo in php.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    442
    Codice PHP:
    echo "<TABLE BORDER=8 WIDTH=40% ALIGN=CENTER BORDER=3>
    <TR><TH>Fai clic sui link per scaricare i file</TH></TR>"
    ;
    # elenco dei contenuti di una cartella con link
    //apro la cartella ivi presenti i file da s caricare
    $cartella opendir("upload/".$riga['type']."/");
    //finchè la directory esiste
    while ($file readdir($cartella)) {
    //leggi i file da scaricare e mettili in un array
    $array_file[] =$file;
    }
    //per ogni file memorizzato in array
    foreach ($array_file as $file) {
    echo 
    "<TR><TD><CENTER>";
    //il cui percorso sia diverso da ./ o ../
    if ( $file == ".." || $file == ".") {
    continue;
    }
    //memorizzo la dimensione del file
    $dimensioni_file=filesize("upload/".$riga['type']."/".$file);
    //e il percorso del file
    $dir="upload/".$riga['type']."/".$file;
    echo 
    "<a href=\"
    //link che ti permette di s caricare il file passando via get dimension e percorso
    download.php?nome_file=
    $file&dimensioni_file=$dimensioni_file&dir=$dir

    \">
    $file</a>,
    "
    ;
    echo 
    "</TR></TD></CENTER>";

    Codice PHP:
    //passi dim percorso nome_file
    $nome_file=stripslashes($_GET['nome_file']);
    $dimensioni_file=stripslashes($_GET['dimensioni_file']);
    $dir=stripslashes($_GET['dir']);
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: public");
    header("Content-Type: application/html");//tipo di applicatione
    header("Content-Description: File Transfer");//trasferimenyto file
    header("Content-type: Application/octet-stream");//forzare il downloadf
    header("Content-Disposition: attachment; filename=$nome_file");
    header("Content-Description: Download PHP");
    header("Content-Length: $dimensioni_file");
    readfile($dir); 

  5. #5
    ok, ma dove setto il percorso dove salvo i file sul mio pc?

  6. #6
    e poi perchè c'è "upload/".$riga['type']."/" nel percorso della cartella? Cos'è quella variabile $riga['type']?

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    442
    al posto di quello puoi mettere un tuo percorso dove si trovano i file

    quello era che le varie directori dove avevo io i file le avevo create in modo dinamico memorizzando i nomi delle directori nel db mysql

    cmq al posto di quello metti il percorso relativo non assoluto

  8. #8
    Il file caro mio gira e senza problemi, però a me la finestra di conferma del salvataggio mi esce, quella che mi chiede dove salvare il file. A me serviva qualcosa che mi permettesse a priori di impostare il percorso dove salvare e non far aprire la finestrella!!
    Per essere precisi la finestrella è quella con i tre bottoni "apri" "salva" "annulla"

    Qualcuno può dirmi come caspita si fa?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    21
    Quindi si riesce a non far visualizzare la finestra con apri salva e annulla quando si tenta di scaricare un file da server?

  10. #10
    La tua richiesta non mi sembra tanto "carina", lo scaricare file senza chiedere conferma è una pratica usata di solito da dialer e altro malware in genere (e si può fare solo sfruttando bachi dei programmi di navigazione), quindi la finestrella apri salva annulla la devi mantenere
    Never care for what they say, Never care for games they play. Never care for what they do, Never care for what they know.
    «Solo due cose sono infinite: l’universo e la stupidità umana, e sul primo non sono sicuro». (A. Einstein)

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.