Visualizzazione risultati 1 fino 9 di 9

Discussione: [php] Script per upload e download di files

  1. #1
    Guest

    Predefinito [php] Script per upload e download di files

    Buongiorno a tutti. Premesso che sono un cane nella programmazione, cerco un aiuto. Sono riuscito bene o male a creare una pagina PHP funzionante per l'upload di files in un sito (bella forza, direte). Ora però mi servirebbe un qualche script che mi creasse un link automatico al file caricato, in modo tale da avere la classica pagina (protetta) composta dalla sezione upload e immediatamente sotto dai link ai files caricati (chiaramente anche a quelli precedenti la sessione). Ho cercato per ore ma nessuna soluzione o idea. I files sarebbero pochi, quindi non vorrei usare un database. Se mi potete dare una mano, o meglio ancora fornirmi qualche esempio, grazie in anticipo.

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Sei già riuscito nella parte più difficile, perché dato che conosci il percorso in cui hai salvato il file (vero?), ti basta stampare un link a questo percorso per ottenere il download:
    Codice PHP:
    echo '<a href="' . $percorso . '/' $nome_file . '">Scarica file</a>';
    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    Guest

    Predefinito

    Eh, ma la variabile $percorso mi sparisce al successivo accesso, se ci capisco qualcosina... ce l'ho in uso solamente nel momento in cui carico un file...

    Se uso uno script tipo questo, se non ho capito male qualsiasi richiamo a variabili quando lo script non lavora (cioè quando non sto uploadando un file) è vano, mentre a me serve che i link ai file che ho caricato in una sessione precedente ci siano, nella pagina... o sbaglio qualcosa?
    Ultima modifica di coreyx : 15-03-2013 alle ore 11.06.39

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    In realtà le variabili PHP "muoiono" quando è stato inviato l'output finale al browser (a meno che non vengano esplicitamente "sdichiarate" con unset), e non quando finisce l'upload del file.

    Per questo motivo puoi stampare il link subito dopo aver effettuato l'upload e spostato il file nella posizione definitiva... aggiungo: quel codice è molto basico, un po' di HTML di contorno ce lo devi aggiungere per ottenere una pagina presentabile...

    Stammi bene...
    Ultima modifica di dementialsite : 15-03-2013 alle ore 11.23.05
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  5. #5
    Guest

    Predefinito

    Innanzitutto grazie per aver preso a cuore il mio caso. Solo che la tua soluzione (ora non posso testarla) non mi sembra funzionante, o per lo meno probabilmente mi sono spiegato male io.

    In pratica a me servirebbe una pagina che contenga sia il modulo di upload che TUTTI i link dei file precedentemente "uppati" (per poterli scaricare).

    Sono d'accordo sulla "vita" delle variabili. Il punto è che:
    1. Supponiamo di caricare un file: lo script agisce, per cui posso richiamare la variabile percorso con l'echo. OK, il link c'è.
    2. Chiudo il browser. Quindi la variabile (anche fosse di sessione) si "unsetta".
    3. Riapro il browser e mi ricollego alla pagina: il link non c'è più in quanto non c'è più la variabile relativa.

    ...o mi sbaglio?

    P.S.: lo script è solo un esempio... L'ho postato solo per far capire come intendo agire per la parte PHP... la parte HTML di contorno ce la metto io.

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Fai così: i file caricati immagino che li carichi in una speciale cartella, "upload" (o equivalente). Oppure, se li carichi "sparsi" in una directory, devi comunque far in modo di riconoscerli (ad esempio, mettendo un prefisso ai nomi dei file del tipo "upload_" (o equivalente).

    In ogni caso, puoi elencare dei file tramite la glob() (ci sono anche altre funzioni pseudo-equivalenti, tipo le opendir(), readdir()). Se i file si trovano in una cartella specifica, puoi recuperare i nomi ad esempio con:
    Codice PHP:
    $files = glob('./uploads/*');
    Se come dicevano prima hanno un prefisso del tipo "upload_":
    Codice PHP:
    $files = glob('upload_*');
    Se vuoi recuperare tutti i file di una certa estensione:
    Codice PHP:
    $files = glob('*.txt');
    Ovviamente puoi anche combinare le ricerche:
    Codice PHP:
    $files = glob('./uploads/_upload*.txt');
    Nella documentazione, come accade molto spesso, si trovano esempi molto comuni, che sono le cose che di solito uno vuol fare... Nel tuo caso, si tratta di questo esempio.

    Ciao!
    Ultima modifica di alemoppo : 15-03-2013 alle ore 12.53.34

  7. #7
    Guest

    Smile

    Grazie infinite. L'unica cosa che non mi è molto chiara è la sintassi dell'argomento della funzione glob: ho letto in giro che accetta percorsi "tipo shell", per cui se lo script php fosse eseguito su downloads.php nel percorso

    miosito/cartella1/downloads.php

    e la cartella uploads (dove vado a caricare i miei files) fosse situata in

    miosito/cartella2/uploads

    posso usare la sintassi
    Codice PHP:
    <?php
    foreach (glob("../cartella2/uploads/*") as $filename)
    {
    echo
    "<a href=\"".$filename."\">".$filename."</a><br/>";
    }
    ?>
    per quanto riguarda i files da listare per il download?

    (dirai: "...prova!!" Ma adesso non posso fare alcun test e mi piacerebbe essere a posto con la coscienza )

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    prova!!

    Comunque sì: dovrebbe essere corretto.

    Ciao!

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio

    prova!!

    ...evabbè... me la sono voluta!

    Grazie ancora!!!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •