ファイルアップロード

フォームからアップロードされたファイルは、その他のフォーム項目と同様にコントローラのクラス変数に格納されます。格納されるのはアップロードされたファイルをあらわすUploadFileクラスのインスタンスです。

HTMLフォーム:

<form method="post" enctype="multipart/form-data" action="upload.php">
  <input type="hidden" name="action" value="upload" />
  ファイル: <input type="file" name="file" /><br />
  <input type="submit" value="送信" />
</form>

upload.php:

require_once "/path/to/Guesswork.php";

class UploadController extends Controller
{
    var $_gw_default_action = "upload";
    var $_gw_template_class = "/path/to/Smarty.class.php";
    var $_gw_template_templates_dir = "/path/to/templates";
    var $_gw_template_compile_dir = "/path/to/templates_c";

    var $file;

    function init()
    {
        $this->file = null;
    }

    function executeUpload()
    {
        // クライアントマシン上でのファイル名
        print $this->file->getName();

        // MIMEタイプ
        print $this->file->getMimeType();

        // アップロードされたファイルのテンポラリファイルパス
        print $this->file->getTmpFilePath();

        // エラーコード
        print $this->file->getErrorCode();

        // ファイルのバイト単位でのサイズ
        print $this->file->getFileSize();
    }
}

$controller = new UploadController();
$controller->process();

exit;

ファイルアップロードについてはPHPマニュアルのPHP: ファイルアップロードの処理も参照してください。