Joomla.it Forum

Non solo Joomla... => Sviluppo => : Alhazred 29 Sep 2011, 21:19:16

: [Risolto] Definire tipo form nel backend
: 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.
: Re:Definire tipo form nel backend
: dazo 30 Sep 2011, 10:23:16
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.

: Re:Definire tipo form nel backend
: Alhazred 30 Sep 2011, 10:31:49
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.
: Re:Definire tipo form nel backend
: Alhazred 30 Sep 2011, 22:09:52
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?
: Re:Definire tipo form nel backend
: Alhazred 01 Oct 2011, 01:01:56
Sono riuscito a prenderlo con
$_FILES['jform'['name']['miocampo']
: Re:Definire tipo form nel backend
: jonxduo 06 Oct 2011, 17:55:07

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?
: Re:[Risolto] Definire tipo form nel backend
: Alhazred 06 Oct 2011, 19:07:55
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