it-swarm.dev

Caricamento file usando JInput! possibile?

uso un modulo HTML su uno dei miei articoli, riesco a ottenere i valori dal modulo usando JInput!

$input = JFactory::getApplication()->input;

Ma ora ho bisogno di aggiungere un caricamento file input al modulo:

<input type="file" name="upload">

Come caricare e salvare i file sul server utilizzando JInput !?

Caricamento del file con restrizioni, che consente solo estensioni di file specifiche.

6
saibbyweb

Oltre alla risposta di @ Bakual, ​​assumiamo una forma semplice come questa:

<form name="upload" method="post" enctype="multipart/form-data">
    <input type="file" name="file_upload">
</form>

Per caricare il file dopo aver premuto il pulsante di invio, è possibile utilizzare questo:

$input = JFactory::getApplication()->input;
$file  = $input->files->get('file_upload'); 

// Cleans the name of teh file by removing weird characters
$filename = JFile::makeSafe($file['name']); 

$src  = $file['tmp_name'];
$dest = JPATH_BASE . '/modules/mod_mymodule/' . $filename;

if (JFile::upload($src, $dest)) 
{
      // The file has successfully been uploaded :)
} 
else 
{
      // Oh crap, something happened. Run!
}

Ovviamente dovrai cambiare il percorso ($dest) in base alle tue esigenze.

Esistono molte convalide da eseguire durante la gestione dei caricamenti, molte delle quali sono disponibili sul collegamento che è già stato fornito:

http://docs.joomla.org/How_to_use_the_filesystem_package

16
Lodder

Ci sono due cose difficili che le persone di solito cadono quando si tratta di upload di file usando JInput:

  • Il tag del modulo deve contenere enctype="multipart/form-data"
  • L'array di file viene recuperato con $input->files->get('upload');
7
Bakual