記事の1つでHTMLフォームを使用しています。JInputを使用してフォームから値を取得することに成功しました。
$input = JFactory::getApplication()->input;
しかし、今私はfile upload inputをフォームに追加する必要があります:
<input type="file" name="upload">
JInputを使用してサーバーにファイルをアップロードおよび保存する方法!?
制限付きのファイルアップロード、特定のファイル拡張子のみを許可します。
@Bakualの回答に加えて、次のような単純なフォームがあるとします。
<form name="upload" method="post" enctype="multipart/form-data">
<input type="file" name="file_upload">
</form>
送信ボタンが押されたらファイルをアップロードするには、これを使用できます:
$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!
}
パスを変更する必要があります($dest
)ニーズに合ったものに。
アップロードを処理するときに実行する必要のある検証がたくさんあります。その多くは、既に提供されているリンクにあります。
JInputを使用したファイルのアップロードに関しては、通常、2つの注意が必要な点があります。
enctype="multipart/form-data"
_を含める必要があります$input->files->get('upload');
で取得されます