Cake PHP は初めてで、ファイルのアップロードに meioupload を使用しようとしました。
完全な手順を検索しましたが、完全なドキュメントを読んだかどうかわかりません..
ここで、私が行ったことについて説明します。
このリンクから http://www.meiocodigo.com/projects/meioupload/
「製品」という名前のテーブルを作成しました
CREATE TABLE products(
idint(8) unsigned NOT NULL auto_increment,
namevarchar(255) デフォルト NULL,
descriptiontext デフォルト NULL,
pricedouble デフォルト NULL,
picturevarchar(255) デフォルト NULL,
dirvarchar(255) デフォルト NULL,
mimetypevarchar(255) NULL,
filesizeint(11 ) unsigned デフォルト NULL、
createddatetime デフォルト NULL、
modifieddatetime デフォルト NULL、PRIMARY KEY ( id) )
そして、モデルに "$actAs" 変数を追加すると、次のようになります。
`
クラス product は AppModel を拡張します{
public $name="Product";
var $actsAs = array(
'MeioUpload' => array(
'picture' => array(
'dir' => 'uploads',
'create_directory' => true,
'max_size'=>'10 Mb',
'allowed_mime' => array('image/jpeg', 'image/pjpeg', 'image/png'),
'allowed_ext' => array('.jpg', '.jpeg', '.png'),
'thumbsizes' => array(
'normal' => array('width'=>200, 'height'=>200),
),
'default' => 'default.jpg',
)
)
);
} `
そして、 https://github.com/jrbasso/MeioUpload/blob/master/Model/Behavior/MeioUploadBehavior.phpから Model->Behaviour->MeioUploadBehavior.php 内に MeioUploadBehavior.php ファイルをアップロードしました
私のコントローラーは次のようになります
Class productscontroller extends AppController{
public $name="Products";
public function beforeFilter(){
$this->layout="admin";
}
public function admin_upload(){
}
}
そして、view->products->admin_upload.ctpからの私のビューファイル
<?php
echo $this->Form->create('Product', array('type' => 'file'));
echo $this->Form->input('picture', array('type' => 'file'));
echo $this->Form->input('dir', array('type' => 'hidden'));
echo $this->Form->input('mimetype', array('type' => 'hidden'));
echo $this->Form->input('filesize', array('type' => 'hidden'));
echo $this->Form->end('Submit');
?>
localhost/test/cake/admin/products/upload を実行すると
ファイルフィールドと送信ボタンのあるフォームが表示されます。
画像を選択して送信すると、フォームが正常に送信され、webroot->uploads->「thumb」内に空のフォルダーのみが作成されます。画像はアップロードに移動されず、サム フォルダーにも移動されません。
また、テーブルにもデータが挿入されています..
アクションでデータを手動で保存する必要がありますか!?
親切に助けてください。
どうもありがとう。