it-swarm-tr.com

JInput kullanarak dosya yükleme! mümkün?

makalelerimden birinde bir html formu kullanın, JInput kullanarak formdan değerleri elde başarılı!

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

Ama şimdi forma bir dosya yükleme girişi eklemeniz gerekiyor:

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

JInput! Kullanarak dosyaları sunucuya nasıl yükleyebilir ve kaydedebilirim?

Yalnızca belirli dosya uzantılarına izin veren kısıtlamalarla dosya yükleme.

6
saibbyweb

@ Bakual'ın cevabına ek olarak, size şöyle basit bir form olduğunu varsayalım:

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

Gönder düğmesine basıldıktan sonra dosyayı yüklemek için şunu kullanabilirsiniz:

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

Açıkçası yolu değiştirmeniz gerekecek ($dest) gereksinimlerinize uygun olanlara.

Yüklemeleri işlerken gerçekleştirmeniz gereken bir sürü doğrulama var; bunların çoğu size sağlanmış olan bağlantıda bulunabilir:

http://docs.joomla.org/How_to_use_the_filesystem_package

16
Lodder

JInput kullanarak dosya yüklemeleri söz konusu olduğunda insanların genellikle düştüğü iki zor şey vardır:

  • Form etiketinizin enctype="multipart/form-data" İçermesi gerekiyor
  • Dosya dizisi $input->files->get('upload'); ile alınır
7
Bakual