Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 30
  1. #1
    Utente di HTML.it L'avatar di tigh
    Registrato dal
    Dec 2007
    Messaggi
    52

    [PHP]php ed ftp - spostare file

    situazione:
    ho uno script di php che permette all'utente di selezionare una serie di file e poi crea uno zippone che l'utente si può downlodare.
    ma è sorto un problema: i file possono anche essere molti e pesanti e quindi alle volte php non ce la fa e pianta lo zip a metà!

    allora mi hanno proposto di mettere i file selezionati in una directory ftp anonima e mandare una mail all'utente con l'indirizzo ftp...

    quindi io pensavo di far fare a php lo zip come processo in background e spedire la mail... e fin qui tutto bene.
    invece di ftp e cose così non so nulla... tipo come stabilire una connessione, come spedire il file...
    qualcuno ha qualche consiglio?

    ... non so neanche cosa dovrei chiedere al tecnico che gestisce il server senza fare figure barbine!

    e comunque, vi pare un modo sensato per risolvere il problema o ci sono soluzioni migliori?
    My name is Saul Tigh, I am an officer in the Colonial Fleet. Whatever else I am, whatever else it means, that's the man I want to be. And if I die today, that's the man I'll be.

  2. #2
    Probabilmente la soluzione è quella di far eseguire lo ZIP ad un processo in background (tramite cron/scheduled task). Una volta che lo ZIP è pronto per il download mandi una mail all'utente con il link (es. valido solo per 24 ore etc.). Sempre nello stesso script schedulato puoi effettuare la pulizia della cartella dove metti gli ZIP in modo da non riempirti di file inutili.

  3. #3
    Utente di HTML.it L'avatar di tigh
    Registrato dal
    Dec 2007
    Messaggi
    52
    si ma fisicamente dove lo metto il file?
    è questa cosa dell'ftp che non capisco...
    My name is Saul Tigh, I am an officer in the Colonial Fleet. Whatever else I am, whatever else it means, that's the man I want to be. And if I die today, that's the man I'll be.

  4. #4
    lo metti in una qualsiasi cartella sul server, poi farai in modo che l'FTP punti a quella cartella...
    « Se nella prima mezz'ora non capisci chi è il pollo, allora il pollo sei tu. » [Thomas "Amarillo Slim" Preston, campione del mondo di poker]

  5. #5
    Utente di HTML.it L'avatar di tigh
    Registrato dal
    Dec 2007
    Messaggi
    52
    scusa, è che sono io che non capisco....

    una cartella "normale" quindi, con indirizzo http://ecc..?
    e cosa vuol dire che l'FTP punti a quella cartella?
    e come faccio a farglielo fare?

    scusa sicuramente sono domande da fesso, ma non ho ben capito la differenza tra http, ftp, ecc e perché mi serve l'ftp in questo particolare caso...
    My name is Saul Tigh, I am an officer in the Colonial Fleet. Whatever else I am, whatever else it means, that's the man I want to be. And if I die today, that's the man I'll be.

  6. #6
    avrai un servizio FTP sul server che si occuperà di rendere raggiungibili determinate cartelle tramite l'FTP

    dovrai configurarlo per far si che renda disponibile la cartella con gli zip agli utenti anonimi che si collegheranno all'indirizzo che tu manderai loro via mail...

    es: ftp://tuosito.it/repository/nome_file.zip


    è un lavoro più sistemistico che altro
    « Se nella prima mezz'ora non capisci chi è il pollo, allora il pollo sei tu. » [Thomas "Amarillo Slim" Preston, campione del mondo di poker]

  7. #7
    Utente di HTML.it L'avatar di tigh
    Registrato dal
    Dec 2007
    Messaggi
    52
    comincio a capire...
    quindi quello che devo fare è semplicemente mettere tutti gli zip in una cartella del mio sito (esempio: repository) e dire al tipo che si occupa di gestire il server di configurarlo in modo che ci sia un indirizzo ftp che punti a quella cartella

    ftp://miosito.it/repository

    quindi poi quando mando la mail tramite php do all'utente l'indirizzo:
    ftp://miosito.it/repository/nomefile_1

    e all'utente successivo do:
    ftp://miosito.it/repository/nomefile_2
    ecc..

    e loro si scaricano belli e felici i rispettivi file...

    quindi l'FTP è solo un "modo" per arrivare al file, non un "luogo" diverso in cui mettere i file?!
    My name is Saul Tigh, I am an officer in the Colonial Fleet. Whatever else I am, whatever else it means, that's the man I want to be. And if I die today, that's the man I'll be.

  8. #8
    esatto
    « Se nella prima mezz'ora non capisci chi è il pollo, allora il pollo sei tu. » [Thomas "Amarillo Slim" Preston, campione del mondo di poker]

  9. #9
    Utente di HTML.it L'avatar di tigh
    Registrato dal
    Dec 2007
    Messaggi
    52
    perfetto, ora è tutto chiaro!
    grazie mille!
    My name is Saul Tigh, I am an officer in the Colonial Fleet. Whatever else I am, whatever else it means, that's the man I want to be. And if I die today, that's the man I'll be.

  10. #10
    Utente di HTML.it L'avatar di tigh
    Registrato dal
    Dec 2007
    Messaggi
    52
    ovviamente ho cantato vittoria troppo presto,
    il problema è per il processo in background questa volta:
    io ingenuamente credevo che bastasse aggiungere la & alla fine del comando, cioè

    system("tar czf archivioN.tar.gz -T lista_fileN &");

    perché il controllo tornasse subito a php e il processo venisse eseguito in background... ma evidentemente mi sbagliavo...

    quindi se ho ben capito dovrei usare crontab o qualcosa del genere...

    la questione è che i file da comprimere sono diversi ogni volta, cioè ogni utente seleziona, tramite chekbox, l'insieme di file che vuole downlodare, lo script php legge dal database i nomi dei file in questione e li scrive in un file "lista_fileN", dove N è dato dal contatore delle visite e quindi cambia ogni volta...

    quindi per esempio se lo script viene eseguito ogni ora e in quell'ora tre utenti si sono collegati è hanno selezionato i file io dovrei far eseguire a corntab
    tar czf archivioN.tar.gz -T lista_file1
    tar czf archivioN.tar.gz -T lista_file2
    tar czf archivioN.tar.gz -T lista_file3

    e in più inviare la mail ai tre utenti con l'indirizzo ftp dell loro archivio

    quindi il problema è che non devo semplicemente eseguire uno script che è sempre lo stesso ma gli devo passare delle variabili (il nome del file da cui leggere i file da archiviare... per non parlare della la mail dell'utente...)

    quindi il succo è: è possibile passare delle variabili a crontab? o altrimenti come dovrei procedere?
    My name is Saul Tigh, I am an officer in the Colonial Fleet. Whatever else I am, whatever else it means, that's the man I want to be. And if I die today, that's the man I'll be.

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.