آپلود با cakephp
دوشنبه, ۲۰ دی ۱۳۸۹، ۰۷:۴۷ ق.ظ
کیک پی اچ پی یکی از فریم ورک های قدرتمند و بسیار ساده ست که خیلی راحت می تونید باهاش سایت هایی رو با معماری MVC بنویسید که به راحتی قابل توسعه هستند. برای آشنایی با این فریم ورک می تونید به این پست مراجعه کنید. یکی از امکاناتی که این فریم ورک به ما می ده استفاده از behavior ها یا رفتارکننده ها هاست...
رفتار کننده ها یا Behaviour جزئی از ساختار کیک هستند که به مدل ضمیمه می شوند . وظیفه ی آنها این است که فعالیت های اتوماتیکی که باید روی اطلاعات ورودی یا خروجی دیتا بیس ها انجام شود را انجام می دهند .
به طور مثال اگر ما بخواهیم هنگامی که تغییری روی یک رکورد از یک جدول اتفاق افتاد در جدولی دیگر روی رکوردی تغییراتی اعمال کنیم ، یا اگر بخواهیم عملیات هایی که روی یک تیبل انجام می شود را در فایلی بصورت Log ذخیره کنیم این قسمت به ما کمک خواهد کرد . البته رفتار کننده ها فواید دیگری هم دارند که در این مثال دو نمونه ساده ذکر گردید .
بدون هیچ حرف اضافی دیگه ای (این قبلی ها همش اضافی بود) می ریم سراغ آپلود عکس با یکی از این رفتارکننده ها به نام MeioUpload. این رفتار کننده به ما این اجازه رو می ده که به راحتی بتونیم برای سایتمون یه بخش آپلود راه اندازی کنیم. برای این کار کافیه آخرین نسخه ی این رفتارکننده رو از اینجا بگیرید و فایل models/behaviors/meio_upload.php رو داخل شاخه ی models/behaviors در پروژه ی خودتون کپی کنید. به همین راحتی :))
حالا برای نمونه ما یه جدول داریم به نام images که می خوایم عکسایی رو که آپلود می کنیم توش ذخیره کنیم. برای ساخت جدول از این دستورها استفاده کنید:
وقتی فایل ها رو دانلود کردید محتویات داخل فایل رو در شاخه ای به نام phpThumb در شاخه ی vendors کپی کنید. یعنی به این صورت:
برای اطلاعات بیشتر می تونید از این دو لینک استفاده کنید:
http://www.meiocodigo.com/projects/meioupload/
http://cakeforge.org/snippet/detail.php?type=snippet&id=226
امیدوارم به دردتون خورده باشه
رفتار کننده ها یا Behaviour جزئی از ساختار کیک هستند که به مدل ضمیمه می شوند . وظیفه ی آنها این است که فعالیت های اتوماتیکی که باید روی اطلاعات ورودی یا خروجی دیتا بیس ها انجام شود را انجام می دهند .
به طور مثال اگر ما بخواهیم هنگامی که تغییری روی یک رکورد از یک جدول اتفاق افتاد در جدولی دیگر روی رکوردی تغییراتی اعمال کنیم ، یا اگر بخواهیم عملیات هایی که روی یک تیبل انجام می شود را در فایلی بصورت Log ذخیره کنیم این قسمت به ما کمک خواهد کرد . البته رفتار کننده ها فواید دیگری هم دارند که در این مثال دو نمونه ساده ذکر گردید .
بدون هیچ حرف اضافی دیگه ای (این قبلی ها همش اضافی بود) می ریم سراغ آپلود عکس با یکی از این رفتارکننده ها به نام MeioUpload. این رفتار کننده به ما این اجازه رو می ده که به راحتی بتونیم برای سایتمون یه بخش آپلود راه اندازی کنیم. برای این کار کافیه آخرین نسخه ی این رفتارکننده رو از اینجا بگیرید و فایل models/behaviors/meio_upload.php رو داخل شاخه ی models/behaviors در پروژه ی خودتون کپی کنید. به همین راحتی :))
حالا برای نمونه ما یه جدول داریم به نام images که می خوایم عکسایی رو که آپلود می کنیم توش ذخیره کنیم. برای ساخت جدول از این دستورها استفاده کنید:
CREATE TABLE `products` (این کدها رو در model خودتون اضافه کنید:
`id` int(8) unsigned NOT NULL auto_increment,
`name` varchar(255) default NULL,
`description` text default NULL,
`picture` varchar(255) default NULL,
`dir` varchar(255) default NULL,
`mimetype` varchar(255) NULL,
`filesize` int(11) unsigned default NULL,
`created` datetime default NULL,
PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
var $actsAs = array(و در فایل add.ctp در شاخه ی view این کد رو هم اضافه کنید:
'MeioUpload' => array(
'picture' => array(
'dir' => 'files/images',
'create_directory' => true,
'allowed_mime' => array('image/jpeg', 'image/pjpeg', 'image/png'),
'allowed_ext' => array('.jpg', '.jpeg', '.png'),
'thumbsizes' => array(
'small' => array('width'=>100),
'normal' => array('width'=>200),
'large' => array('width'=>800),
),
'default' => 'default.jpg',
)
)
);
echo $form->input('picture', array('type' => 'file'));دقت کنید که وقتی فرم می سازید حتمن type برابر با file باشه. یعنی اینجوری:
Form->create('Image', array('type' => 'file'));?>حالا برای اینکه thumb هم ساخته بشه از عکس هایی آپلود می کنیم به phpThumb هم نیاز داریم که می تونید از این لینک آخرین نسخه اش رو بگیرید.
وقتی فایل ها رو دانلود کردید محتویات داخل فایل رو در شاخه ای به نام phpThumb در شاخه ی vendors کپی کنید. یعنی به این صورت:
/vendors/phpThumb/{files}حالا برید به نشانی /images/add و از معجزه ی کیک لذت ببرید :)
برای اطلاعات بیشتر می تونید از این دو لینک استفاده کنید:
http://www.meiocodigo.com/projects/meioupload/
http://cakeforge.org/snippet/detail.php?type=snippet&id=226
امیدوارم به دردتون خورده باشه
۸۹/۱۰/۲۰
عالی بود
کیکِ بسیار خوشمزهای بود !