0

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」内に空のフォルダーのみが作成されます。画像はアップロードに移動されず、サム フォルダーにも移動されません。

また、テーブルにもデータが挿入されています..

アクションでデータを手動で保存する必要がありますか!?

親切に助けてください。

どうもありがとう。

4

1 に答える 1

0

はい、コントローラーのアクションが空のようです。save()モデルのメソッドを使用して、フォームから送信されたデータを保存してみてください。これにより、MeioUpload がトリガーされ、フォームと共にアップロードされたファイルが保存されます。

また、CakePHP 2.x を使用しているようです。モデル'MeioUpload.MeioUpload'$actsAsプロパティのようにプラグインを修飾することをお勧めします。uploadsウェブルート内のフォルダーに適切な書き込みおよび実行権限を付与していることを確認してください。

ソース: MeioUpload プラグインを使用して自分の Web サイトを構築しています。

于 2012-03-19T06:26:19.270 に答える