Cake PHP は初めてで、ファイルのアップロードに meioupload を使用しようとしました。
完全な手順を検索しましたが、完全なドキュメントを読んだかどうかわかりません..
ここで、私が行ったことについて説明します。
このリンクから http://www.meiocodigo.com/projects/meioupload/
「製品」という名前のテーブルを作成しました
CREATE TABLE products
(
id
int(8) unsigned NOT NULL auto_increment,
name
varchar(255) デフォルト NULL,
description
text デフォルト NULL,
price
double デフォルト NULL,
picture
varchar(255) デフォルト NULL,
dir
varchar(255) デフォルト NULL,
mimetype
varchar(255) NULL,
filesize
int(11 ) unsigned デフォルト NULL、
created
datetime デフォルト NULL、
modified
datetime デフォルト 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」内に空のフォルダーのみが作成されます。画像はアップロードに移動されず、サム フォルダーにも移動されません。
また、テーブルにもデータが挿入されています..
アクションでデータを手動で保存する必要がありますか!?
親切に助けてください。
どうもありがとう。