Joomla.it Forum
Non solo Joomla... => Sviluppo => : Alhazred 29 Sep 2011, 21:19:16
-
Nel backend ho bisogno di permettere l'upload di un file da una delle form che servono a popolare le tabelle del componente, nel file xml che definisce la form però non so come dichiararla multipart/form-data.
Ho provato a mettere enctype='multipart/form-data' nel tag <form> ma non ha funzionato
<?xml version="1.0" encoding="utf-8"?>
<form>
<fieldset>
<field name="id" type="text" default="0" label="JGLOBAL_FIELD_ID_LABEL"
readonly="true" class="readonly"
description="JGLOBAL_FIELD_ID_DESC" />
<field name="creatore" type="text" size="40" class="inputbox"
label="COM_PREVENTIVILIBRI_FORM_LBL_LIBRO_CREA TORE"
description="COM_PREVENTIVILIBRI_FORM_DESC_LIBRO_CRE ATORE"
filter="safehtml" />
<field name="testo" type="upfile" size="50" class="inputbox"
label="COM_PREVENTIVILIBRI_FORM_LBL_LIBRO_TEST O"
description="COM_PREVENTIVILIBRI_FORM_DESC_LIBRO_TES TO" />
</fieldset>
</form>
Il campo upfile è un campo custom che ho creato io.
-
non è chiarissimo se hai creato tu il componente o stai modificando un altro componente, comunque enctype='multipart/form-data' nel caso lo devi inserire nel tag che stampa il form non nell'xml, ovvero c'è un file .php che si occupa di stampare il form ed è lì che trovi il normale tag html <form> in cui aggiungere l'enctype. Poi se è un componente standard di joomla penso dovrai modificare anche table, model e il controller.
-
Si, il componente lo sto scrivendo io, grazie per la risposta, ho risolto, mi ero impuntato col file xml invece di pensare al file php della view.
-
Adesso come recupero il nome del file caricato?
Con $_FILES['nomecampo']['name'] nel file php corrispondente nella cartella table non viene recuperato niente.
Quali file devo modificare e come?
-
Sono riuscito a prenderlo con
$_FILES['jform'['name']['miocampo']
-
a parte che:$_FILES['jform'['name']['miocampo']
è scritto male... ma va bene... vorrei sapere dove hai recuperato il file??? sai che c'è una funzione apposita al cui interno effettuare l'up dei file?
-
Per l'upload c'è
JFile::upload($sorgente,$destinazione);
$sorgente è il nome temporaneo del file
$destinazione la path fino alla cartella dove vuoi mettere il file, comprensivo del nome con cui vuoi salvare il file