Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31
  1. #1

    Download automatico di un file e inserimeno file in una cartella specifica ?

    Ciao ragazzi,

    Praticamente devo fare questa cosa:


    Scaricare un file .kml (da un sito) in automatico, ogni 5 minuti ed eliminare il file meno recente:


    1) quindi se ora viene scaricato il file, la versione risalente al download di 5 minuti fa deve essere eliminata

    2) dovrei far avvenire il download del file in una cartella specifica della directory di un mio sito.


    3) poi in un altro file, dovrei fare il parsing di quanto presente nel file scaricato.





    Secondo voi è possibile ? soprattutto i primi due punti ??

  2. #2
    Hai un db ? Se non lo hai dovresti farlo e salvare via via i file su db magari 2 campi id e nomeFile .
    Poi recuperi l'id + vecchio con
    codice:
    SELECT * FROM tabella_file
    ORDER BY id ASC
    LIMIT 1;
    Poi lo cancelli dal db con
    codice:
    DELETE FROM tabella_file
    WHERE id=id_recuperato_dal_select;
    e lo cancelli fisicamente con

    codice:
    unlink(nomeFile_recuperato_dal_select)

  3. #3
    Quote Originariamente inviata da pippuccio76 Visualizza il messaggio
    Hai un db ? Se non lo hai dovresti farlo e salvare via via i file su db magari 2 campi id e nomeFile .
    Poi recuperi l'id + vecchio con
    codice:
    SELECT * FROM tabella_file
    ORDER BY id ASC
    LIMIT 1;
    Poi lo cancelli dal db con
    codice:
    DELETE FROM tabella_file
    WHERE id=id_recuperato_dal_select;
    e lo cancelli fisicamente con

    codice:
    unlink(nomeFile_recuperato_dal_select)

    si ho mysql...

    Quindi dici di far scaricare il file sul database, e poi fare la procedura che hai detto tu per eliminare quello piu' vecchio...
    ho due domande:

    1) se il file da scaricare da un url, la conferma del download viene bypassata? (Intendo dire: quando clicchi su un download di un file, esce l'alert per la conferma..)

    2) si puo' fare tutto con php?

  4. #4
    Quote Originariamente inviata da Rodrigoson6 Visualizza il messaggio
    si ho mysql...

    Quindi dici di far scaricare il file sul database, e poi fare la procedura che hai detto tu per eliminare quello piu' vecchio...
    ho due domande:

    1) se il file da scaricare da un url, la conferma del download viene bypassata? (Intendo dire: quando clicchi su un download di un file, esce l'alert per la conferma..)

    2) si puo' fare tutto con php?
    Sul db andrebbe solo salvato il nome , il file fisicamente deve stare in una cartella e non sul db .Per il resto dove si trovano i file ? come li scarichi?

    Ho dei dubbi che si possa bypassare ma prendilo con il beneficio del dubbio...

  5. #5
    Quote Originariamente inviata da pippuccio76 Visualizza il messaggio
    Sul db andrebbe solo salvato il nome , il file fisicamente deve stare in una cartella e non sul db .Per il resto dove si trovano i file ? come li scarichi?

    Ho dei dubbi che si possa bypassare ma prendilo con il beneficio del dubbio...
    Ecco il file :


    http://www.emsc-csem.org/Earthquake/Map/earth/kml.php

    Deve essere scaricato (e cancellato) ogni 5 minuti, affinche' si possa avere sempre il file piu' aggiornato.


    In merito alla "conferma di avviare un download" ho letto che andando su :

    1) strumenti di ie
    2) poi sicurezza
    3) cliccare su personalizzata (una cosa del genere, non ricordo bene ora scrivo dal cell)
    4) c'e' una spunta dove dice "richiesta di conferma automatica del download" bisogna cliccare su attiva.


    io pero non lho trovata...

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    se ho capito bene, ti occorre recuperare da remoto un file e salvarlo sul tuo server, aggiornando il file stesso se il vecchio salvataggio del file è più vecchio di 5 minuti

    se è così prova con questo codice

    Codice PHP:
    <?php

    $url 
    "http://www.emsc-csem.org/Earthquake/Map/earth/kml.php";
    $dir "outfile/";
    $file "_file_out.txt";
    $min_time 1;


    $file_old glob($dir ."*"$file);
    $num_file count($file_old);


    switch (
    $num_file) {
        case 
    0:
            
    $data file_get_contents($url);
            
    file_put_contents($dir.time().$file$data);
            echo 
    "il file non esisteva e l'ho creato \n";
            break;
        
        case 
    1:
            
    $file_old_name $file_old[0];
            
    $time_old explode("_"str_replace($dir""$file_old_name));
            
    $elaps time() - $time_old[0];
            if (
    $elaps >= $min_time) {
                echo 
    "devo prendere il file: sono trascorsi $elaps secondi dal vecchio caricamento\n";
                
    $data file_get_contents($url);
                echo 
    "file recuperato dal server remoto \n";
                echo (
    unlink($file_old_name)) ? "file old cancellato \n" "non ho cancellato il file old \n";
                
    file_put_contents($dir.time().$file$data);
                echo 
    "ho completato \n";
            }
            else {
                echo 
    "non devo fare nulla: non sono trascorsi $min_time secondi dal vecchio caricamento\n";
            }
            break;
        
        default:
            echo 
    "errore, verifica la cartella $dir: numero di file != da 1 o 0\n";
            break;
    }


    ?>

  7. #7
    Quote Originariamente inviata da clasku Visualizza il messaggio
    se ho capito bene, ti occorre recuperare da remoto un file e salvarlo sul tuo server, aggiornando il file stesso se il vecchio salvataggio del file è più vecchio di 5 minuti

    se è così prova con questo codice

    Codice PHP:
    <?php

    $url 
    "http://www.emsc-csem.org/Earthquake/Map/earth/kml.php";
    $dir "outfile/";
    $file "_file_out.txt";
    $min_time 1;


    $file_old glob($dir ."*"$file);
    $num_file count($file_old);


    switch (
    $num_file) {
        case 
    0:
            
    $data file_get_contents($url);
            
    file_put_contents($dir.time().$file$data);
            echo 
    "il file non esisteva e l'ho creato \n";
            break;
        
        case 
    1:
            
    $file_old_name $file_old[0];
            
    $time_old explode("_"str_replace($dir""$file_old_name));
            
    $elaps time() - $time_old[0];
            if (
    $elaps >= $min_time) {
                echo 
    "devo prendere il file: sono trascorsi $elaps secondi dal vecchio caricamento\n";
                
    $data file_get_contents($url);
                echo 
    "file recuperato dal server remoto \n";
                echo (
    unlink($file_old_name)) ? "file old cancellato \n" "non ho cancellato il file old \n";
                
    file_put_contents($dir.time().$file$data);
                echo 
    "ho completato \n";
            }
            else {
                echo 
    "non devo fare nulla: non sono trascorsi $min_time secondi dal vecchio caricamento\n";
            }
            break;
        
        default:
            echo 
    "errore, verifica la cartella $dir: numero di file != da 1 o 0\n";
            break;
    }


    ?>

    Sei gentilissimo ti ringrazio!!!

    ma purtroppo sono totalmente ignorante di php, allora ho qualche dubbio:

    la variabile
    Codice PHP:
    $min_time 
    non devo dare valore "5" come i minuti e non "1" ???


    il file con questo script devo inserirlo in una cartella della cartella del mio sito (tramite ftp) ?
    E dove verra' scaricato il file? In quale cartella?
    avverra' tutto in automatico?



    scusami per la stupidita' delle domande :/

  8. #8
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    $min_time è in secondi, quindi devi mettere 300 (60*5 minuti) nel codice avevo messo 1 per testare

    Lo script puoi metterlo dove preferisci, come richiamarlo dipende da come è strutturato il tuo codice (io volevo mostrati un esempio di come gestire il tutto)

    Nel mio codice il file viene scaricato nella sotto cartella outfile, che deve essere presente sul tuo server

    Se spieghi qual è il flusso che ti aspetti possiamo trovare insieme la soluzione migliore

  9. #9
    Quote Originariamente inviata da clasku Visualizza il messaggio
    $min_time è in secondi, quindi devi mettere 300 (60*5 minuti) nel codice avevo messo 1 per testare

    Lo script puoi metterlo dove preferisci, come richiamarlo dipende da come è strutturato il tuo codice (io volevo mostrati un esempio di come gestire il tutto)

    Nel mio codice il file viene scaricato nella sotto cartella outfile, che deve essere presente sul tuo server

    Se spieghi qual è il flusso che ti aspetti possiamo trovare insieme la soluzione migliore

    Per flusso cosa intendi?

  10. #10
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Esempio:
    - tuo sito web
    - utente accede al sito e clicca sulla pagina per visualizzare su una mappa i date che hai recuperato dal server esterno

    In questo caso, nello script per la visualizzazione della mappa inserisci il codice che verifica se è necessario recuperare un nuovo file o meno. In pratica il visitatore senza saperlo aggiorna il file

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.