WebSite X5Help Center

 
Matteo M.
Matteo M.
User

Form con allegato: invio a Db  it

Autore: Matteo M.
Visite 2785, Followers 1, Condiviso 0  

Salve,

ho un problema con un form per la registrazione di utenti ad un evento.

Ho creato il modulo e tutto funziona correttamente, tranne per un dettaglio: l'utente deve inviare un allegato. Se setto il form come "invia i dati per email", va tutto bene, ricevo l'allegato nella mail di riepilogo. Ma se metto "invia i dati ad un database" e richiedo anche la mail di notifica, l'allegato non si trova nè sulla mail di notifica nè sul db. Il campo del db relativo all'allegato l'ho settato come "blob" e ho provato anche "longblob", ma non so come recuperare il file (ammesso che venga caricato). 

Vorrei poter usare il Db, perché mi farebbe risparmiare un bel po' di lavoro esportando i dati di testo in un unico pacchetto e non prendendoli da ogni singola mail. Dalle mail prenderei solo gli allegati.

Un consiglio?

Grazie!!!

Un consiglio? 

Postato il
6 RISPOSTE - 1 CORRETTO
Incomedia
Riccardo P.
Incomedia

Buongiorno Matteo,

prima dovresti verificare se i file vengono inseriti nel db o no, se nella tabella riferita al carrello nela campo dell'allegato c'è il riferimento al file o no.

Prova a leggere i dati dal db o a connetterti direttamente così da poter verificare.

Leggi di più
Postato il da Riccardo P.
Matteo M.
Matteo M.
User
Autore

Ciao Riccardo,

tutti i dati del form vanno correttamente nei rispettivi campi della tabella del db, tranne l'allegato, sembra che il browser lo carichi, ma non so dove va a finire, perché nel db non c'è. Non capisco cosa devo mettere nella voce "Opzioni - Esperto - attributo<name>" nel modulo d'inserimento campi di websitex5.

Ho provato dei form molto semplici precompilati in php, inserendoli come widget e funzionano bene. L'allegato va al posto giusto, ma i campi nel db relativi al file allegato sono 3: id_file, nome_file, tipo_file e il file vero e proprio, che va posto nel campo blob (o mediumblob). Solo che questi form sono graficamente troppo spartani, devo studiare per renderli più gradevoli.

Comunque, se la questione è risolvibile: bene. Altrimenti, non è un problema, per il momento lascio tutto il form come "invia i dati per e-mail", visto che funziona correttamente, perché devo raccogliere un massimo di 25 adesioni. Ma a settembre lo stesso form (altro evento) dovrà raccogliere oltre 300 utenti, e lì sarà dura raccogliere i dati da 300 mail per metterli insieme.

Leggi di più
Postato il da Matteo M.
Incomedia
Riccardo P.
Incomedia

Buongiorno Matteo,

prova a risettare il sito perchè invii i dati al db, noterai che nel db viene scritto il nome del file allegato nella tabella e il file viene salvato nella cartella pubblica settata al passo 4.

Prova a controllare che questa cartella abbia i permessi 777 e che sia presente su server.

Fammi sapere.

Leggi di più
Postato il da Riccardo P.
Matteo M.
Matteo M.
User
Autore

RI-SOL-TO!

Grazie. Avevo già indirizzato alla cart. pubblica l'allegato, ma me l'ero tolto dalla testa! Cercavo sempre il file nel db, invece mi sono ritrovato tutti i file inviati per prova dentro la cart. pubblica. 

Unico neo, quella cartella è pubblica anche in lettura, digitando il nome file può essere scaricato da chiunque. Mi piacerebbe rendere questa cartella pubblica in scrittura ma privata in lettura, ma questa è un'altra storia; cercherò su un'altra discussione o ne aprirò una nuova sull'argomento.

Grazie ancora e buon lavoro.

Leggi di più
Postato il da Matteo M.
Matteo M.
Matteo M.
User
Autore

Quanto segue può essere utile ad altri.

Avevo dovuto togliere le limitazioni alle estensioni del tipo file che gli utenti possono inviare. Quindi per l'invio dell'allegato come mail, le limitazioni funzionavano; avevo specificato files come: doc, docx, odt, txt, rtf, pdf. Mentre per l'invio a db mettendo le limitazioni i file non venivano salvati, quindi le avevo tolte e tutto è andato bene.

Ma possibile che con l'invio a database gli utenti possono mandare qualsiasi cosa? come .exe? NO.

Il problema l'ho risolto togliendo le virgole quando specifico i tipi di files consentiti, quindi: doc,docx,odt,txt,pdf. adesso funziona correttamente anche l'invio a db con le limitazioni di estensione file.

Sembra una sciocchezza, ma ha funzionato così.

Bye.

Leggi di più
Postato il da Matteo M.
Matteo M.
Matteo M.
User
Autore

Sorry, ho tolti "gli spazi dalle virgole"

Leggi di più
Postato il da Matteo M.