Upload file e gestione degli stessi in db MySql

di il
1 risposte

Upload file e gestione degli stessi in db MySql

Buongiorno,

sto creando un'applicazione che prevedere l'inserimento di un allegato nell'invio di un richiesta.
La funzione di upload carica il file sul server, lo rinomina e salva il nomefile su una tabella chiamata "file_temp".
Solo se il messaggio inviato verrà poi accettato allora verrà registrato definitivamente in un'altra tabella e lo stesso file verrà spostato dalla cartella File_Caricati\ alla cartella Documenti\

Nella gestione della query che conferma la richiesta e che quindi trascrive le info presenti nella tabella "richieste" nella tabella finale "lavori" c'è anche la funzione che sposta il file.
Entrambe le lavorazioni devono andare a buon fine, non posso avere un lavoro senza il documento allegato e viceversa.
Al momento utilizzo la funzione copy di PHP per "spostare" in questo modo ho ancora il file originale se ci fossero degli errori e un rollback.
E' il metodo corretto? Ci sono funzionalità migliori?

Per complicare il tutto, l'approvazione delle richieste è multipla, quindi con una sola chiamata io gestisco più di una richiesta.
Questo implica un ciclo in cui per ogni iterazione trascrivo la richiesta e sposto il file allegato.
La verifica però è sulla totalità ovvero che se una sola da un errore, annullo tutte le approvazioni.

1 Risposte

  • Re: Upload file e gestione degli stessi in db MySql

    Ciao,

    secondo me puoi snellire il processo eliminando il passaggio dell'inserimento in una nuova tabella e lo spostamento del file.

    Nella tabella lavori aggiungi un campo "status" che può avere come valori "approved" o "pending" oppure un campo "approved" che può avere valori 0 oppure 1.

    Una volta che hai approvato, cambi lo stato di quel campo nel DB.

    Non capisco a cosa ti serve caricare un file in una cartella temporanea e poi spostarlo (lo puoi fare con la funzione rename).

    Se il tuo scopo è inibire l'accesso ai file prima che siano approvati, puoi inserire nella cartella un .htaccess contenente una regola di tipo deny che nega il download diretto dei file, quindi dopo l'approvazione puoi consentire il download con la funzione readfile() e qualche intestazione inviata tramite header().
Devi accedere o registrarti per scrivere nel forum
1 risposte