FuelPHP Plupload Packageを作った

巨大ファイルや複数ファイルのアップロードにPluploadが非常に使えるのでFuelPHPのパッケージを作ってみた。

必要なもの

設置方法

次の位置においてください

FuelPHP Plupload Package

/fuel/packages/plupload

Plupload

jsフォルダを/public/assets/plupload

jQueryjQuery UIについては、適当にCDNなりローカルからの読み込み等を行って下さい

実装例

/fuel/app/classes/controller/plupload.php

<?php
class Controller_Plupload extends Controller
{
    function action_index()
	{
		return View::forge('plupload');
	}

	static function upload_callback($filename)
	{
    	// アップロード終了時処理
    	// $filenameに保存されたファイル名を返す
	}
	
	function action_upload()
	{
		Plupload::upload('Controller_Plupload::upload_callback');
	}
}

/fuel/app/views/plupload.php

<!DOCTYPE HTML>
<html lang="ja-JP">
    <head>
		<meta charset="UTF-8">
		<title>Plupload</title>
        ここにjQueryjQuery UIの読み込み処理を挿入
		<?php echo Plupload::insert_header(); ?>
	</head>
	<body>
		<form method="post" action="examples_dump.php">
		<div id="uploader" style="height: 330px; width: 500px;">
			<p>You browser doesn't have Flash, Silverlight, Gears, BrowserPlus or HTML5 support.</p>
		</form>
	</body>
</html>

/fuel/app/config/plupload.php(/fuel/packages/plupload/config/plupload.phpからコピーして編集でもよい)

<?php
return array(
    'url' => \Uri::create('plupload/upload'),
	'ui' => 'jqueryui',
);

参考にした所

CakePHP Plupload Plugin | 管理人の日記~つらつらなるままに~