LoginSignup
2
2

More than 5 years have passed since last update.

XOOPS Cube File upload

Last updated at Posted at 2012-09-04

XOOPSの標準クラスのテーマフォームを使用してフォームの作成を行う場合のサンプルを例示します。主に管理画面等でフォームが必要になった場合に使います。今回はその中でも、ファイルのアップロードが必要になった場合のフォーム作成方法についての解説です。

$form = new XoopsThemeForm(_AD_MULTIMENU_EDITIMENU, "editform", "index.php");
$form->setExtra('enctype="multipart/form-data"');
$formFile = new XoopsFormFile(_AD_MULTIMENU_FILE, "uploade_file_name", 500000);
$form->addElement($formFile, false);
$form->addElement($submit_button);
$form->display();

1行目:フォームタグの名前とPOST先を設定
2行目:アップロードするのでformタグにマルチパートを指定
3行目:アップロード用のフォームを作成(第2=タグ名、第3=ファイル上限サイズ)
4行目:フォームに作成したエレメントを追加
5行目:サブミットボタン追加
6行目:フォーム描画実行

POST先の処理例

if ($_FILES) {
    include_once XOOPS_ROOT_PATH . '/class/uploader.php';
    $allowed_mimetypes = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/x-png', 'image/png');
    $maxfilesize = 500000;
    $maxfilewidth = 120;
    $maxfileheight = 120;
    $uploader = new XoopsMediaUploader(XOOPS_ROOT_PATH . '/modules/multimenu/images', $allowed_mimetypes, $maxfilesize, $maxfilewidth, $maxfileheight);
    if ($uploader->fetchMedia('uploade_file_name')) {
        if (!$uploader->upload()) {
            echo $uploader->getErrors();
        } else {
            $_POST['image'] = $uploader->getSavedFileName();
            echo '<h4>File uploaded successfully!</h4>';
            echo 'Saved as: ' . $uploader->getSavedFileName() . '<br />';
            echo 'Full path: ' . $uploader->getSavedDestination();
        }
    } else {
        echo $uploader->getErrors();
    }
}

$_FILES が設定されていればコアの uploader.php を使って処理します。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2