Back to top

Autore Topic: Upload del file...  (Letto 4050 volte)

Offline saprile

  • Esploratore
  • **
  • Post: 74
    • Mostra profilo
Upload del file...
« il: 10 Mar 2015, 16:32:14 »
Buongiorno a tutti, qualcuno potrebbe indicarmi un tutorial (o altro tipo di indicazioni) su come implementare l'inserimento di un file allegato insieme ad altri dati di un form? In pratica ho un form di inserimento record di un componente personalizzato (con n. campi testo), ho la necessità di inserire un file allegato insieme a tutti gli altri campi del form. L'inserimento deve avvenire in due tabelle separate (una per i dati del record e l'altra per i dati dell'allegato) in quanto la relazione tra record e allegato è "1 a n".


Grazie!

Offline steganoga

  • Abituale
  • ****
  • Post: 1313
    • Mostra profilo
Re:Upload del file...
« Risposta #1 il: 10 Mar 2015, 18:07:48 »
non credo esistano, ed è abbastanza complicata la gestione perchè inserisci dati sul fs e sul db che sono entità diverse... e una delle due potrebbe fallire.
In pratica non esiste un tutorial perchè è "banale php" che prende i dati da un campo di form di tipo "file".

Ricorda anche che un file va anche controllato e verificato che sia coerente all'estensione e all'header che presenta, prima di effettuare un upload e deve essere molto ben curata la sicurezza perchè riuscire ad uploadare una shell vuol dire controllare l'intero sito e db ;)
...sono dove non ti aspetti di trovarmi, mi alimento della tua supponenza e disseto la mia curiosità nel silenzio.
Non sono un nemico, considerami un ospite.

Offline saprile

  • Esploratore
  • **
  • Post: 74
    • Mostra profilo
Re:Upload del file...
« Risposta #2 il: 10 Mar 2015, 18:15:26 »
Si hai ragione, capisco che si tratti di banale codice, ma mi riferivo proprio ad una guida che facesse riferimento proprio alla sicurezza e al mantenimento del principio MVC di Joomla. Non ho trovato nulla di affidabile...

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Upload del file...
« Risposta #3 il: 15 Mar 2015, 11:36:30 »
Ciao saprile, hai già analizzato questo tutorial?
https://docs.joomla.org/Creating_a_file_uploader_in_your_component

Puoi forzare la scrittura sul secondo database con le classiche api di Joomla:
https://docs.joomla.org/Inserting,_Updating_and_Removing_data_using_JDatabase
« Ultima modifica: 15 Mar 2015, 11:38:03 da giovi »

Offline steganoga

  • Abituale
  • ****
  • Post: 1313
    • Mostra profilo
Re:Upload del file...
« Risposta #4 il: 15 Mar 2015, 19:55:10 »
@giovi... hai visto che in quel tutorial non funziona nessun link?
...sono dove non ti aspetti di trovarmi, mi alimento della tua supponenza e disseto la mia curiosità nel silenzio.
Non sono un nemico, considerami un ospite.

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Upload del file...
« Risposta #5 il: 16 Mar 2015, 09:59:45 »
Azz... è vero.. perché non lo segnali alla community?


A saprile sarà più utile questo allora: https://docs.joomla.org/How_to_use_the_filesystem_package#Upload_a_file
NB: nel tag form deve essere presente l'attrubuto enctype="multipart/form-data" altrimenti il file caricato non viene considerato correttamente

Offline saprile

  • Esploratore
  • **
  • Post: 74
    • Mostra profilo
Re:Upload del file...
« Risposta #6 il: 16 Mar 2015, 14:43:54 »
Grazie Ragazzi, saranno sicuramente utili, vi farò sapere al più presto!!!


Grazie 1000

Offline steganoga

  • Abituale
  • ****
  • Post: 1313
    • Mostra profilo
Re:Upload del file...
« Risposta #7 il: 16 Mar 2015, 17:50:06 »
Azz... è vero.. perché non lo segnali alla community?
------------------------------------------------------------------------------

1) perchè non esiste una community
2) perchè finora tutti quelli con cui ho avuto a che fare di j.com mi sono sembrati degli emeriti idioti, senza una basilare cultura necessaria a capire cosa ti sta dicendo il tuo interlocutore.

comunque il motivo per cui non funziona più nulla è probabilmente questo: http://seclists.org/fulldisclosure/2013/Mar/116

Per quanto riguarda il problema dell'upload di un file, come dicevo prima, è molto oneroso curare l'aspetto sicurezza e se si salvano contemporaneamente dei dati riguardanti il file nel database, bisogna gestire le eccezioni e non è banale credimi... prima credo fosse addirittura un massacro, ora hanno lievemente migliorato alcune cose inserendo dei triggers prima e dopo il salvataggio dei dati che si possono sfruttare.
...sono dove non ti aspetti di trovarmi, mi alimento della tua supponenza e disseto la mia curiosità nel silenzio.
Non sono un nemico, considerami un ospite.

Offline rose9392

  • Nuovo arrivato
  • *
  • Post: 20
    • Mostra profilo
Re:Upload del file...
« Risposta #8 il: 02 Mag 2015, 23:33:29 »
Non so se ti pu servire, ma anche io mi sono imbattuta in questo problema stasera....

sono arrivata a questa conclusione: ho il file default.php che contiene lo schema del form

Codice: [Seleziona]
<form method="post" name="vetrina_frm" enctype="multipart/form-data">
<fieldset>
                     <label for="name">Immagine 1</label>
     <input type="file" name="myfile" />
      <button type="submit">Submit</button>
</fieldset>


e il file che mi esegue il caricamento dell'allegato in una determinata cartella che posso impostare personalmente


Codice: [Seleziona]
function controllo($parametri){
                        jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');
print_r($_FILES);
$filename=$_FILES['myfile']['name'];
$fileTempPath=$_FILES['myfile']['tmp_name'];

$uploadPath=JPATH_SITE."\\media\\com_vetrina\\images\\".$filename.".jpg";
if(JFile::upload($fileTempPath, $uploadPath)){
//your logic like insert into database
echo "Upload success";
}else
{
echo "Upload faild";
}

Poi puoi gestirti come vuoi anche l'inserimento del path nel db, dato che il path è memorizzato in $uploadPath
« Ultima modifica: 02 Mag 2015, 23:36:23 da rose9392 »

 



Web Design Bolzano Kreatif