ti-enxame.com

Upload de arquivo usando o JInput! possível?

eu uso um formulário html em um dos meus artigos, consigo obter os valores do formulário usando o JInput!

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

Mas agora eu preciso adicionar uma entrada pload de arquivo ao formulário:

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

Como fazer upload e salvar arquivos no servidor usando o JInput !?

pload de arquivo com restrições, permitindo apenas extensões de arquivo específicas.

6
saibbyweb

Além da resposta do @ Bakual, ​​vamos assumir um formulário simples como este:

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

Para fazer upload do arquivo depois que o botão Enviar foi pressionado, você pode usar este:

$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!
}

Você obviamente precisará alterar o caminho ($dest) para o que for mais adequado às suas necessidades.

Há uma série de validações que você deve executar ao manipular envios, muitos dos quais podem ser encontrados no link que você já forneceu:

http://docs.joomla.org/How_to_use_the_filesystem_package

16
Lodder

Existem duas coisas complicadas que as pessoas geralmente ignoram quando se trata de upload de arquivos usando o JInput:

  • Sua tag de formulário precisa conter enctype="multipart/form-data"
  • A matriz de arquivos é recuperada com $input->files->get('upload');
7
Bakual