0

アップロードプラグインの使用。ファイルを上書きする前に既存のファイルをチェックしていないように見えるため、foreign_keyフォルダー内のファイルをランダムに「保証」するようにアップロードしたいと思います。

次のようなファイルにアップロードしたいのですが。

/webroot/uploads/02/88/06/4f93676e-347c-4e0c-8e6c-0a3cadcd7f7c/my_photo.jpg

を設定すると'pathMethod'=>'random'、3つの乱数(0〜100の間)のフォルダーが取得されますが、主キーフォルダーは取得されません。

または、「pathMethod」=>「primaryKey」を設定すると、主キーフォルダーは取得されますが、乱数は取得されません。

プラグインのアップロード動作には関数がありますがuploadSettings(それが目的かどうかはわかりません)、コントローラーを介して実行しようとすると、何も実行されません。

//ArticleDatasController
$this->Upload->uploadSettings('Upload', 'photo', array('path'=> '{ROOT}webroot{DS}uploads{DS}test{DS}ArticleData{DS}{field}'));
if($this->Upload->save($this->request->data)) {

これが私のアップロードモデルの$actsAsです:

//Upload model
public $actsAs = array(
    'Upload.Upload' => array(
        'photo' => array(
            'thumbnailSizes' => array(
                'xvga' => '1024x768',
                'vga' => '640x480',
                'thumb' => '80x80',
            ),
            'thumbnailMethod' => 'php',
            'thumbnailQuality' => '80',
            'pathMethod'=>'random',
            'path' => '{ROOT}webroot{DS}uploads{DS}{field}{DS}',
            'maxSize' => '5242880', //5MB
            'mimetypes' => array('image/jpeg', 'image/png', 'image/gif', 'image/bmp'),
            'extensions' => array('jpg', 'gif', 'png', 'bmp'),
        ),
    )
);
4

1 に答える 1

0

こちらはつい先日利用させていただきました。まず、見た目から、どちらか一方を取得できますが、両方を取得することはできません。uploadSettings() 関数が機能していないかどうかはわかりませんが、次のように使用してみます。

$this->Upload->uploadSettings('Upload', 'photo', 'path',  '{ROOT}webroot{DS}uploads{DS}test{DS}ArticleData{DS}{field}');

配列と非配列を受け入れるようですが、配列を適切に受け入れていない可能性があるため、この方法を試してください。

また、達成しようとしていることについては、外部キーについて言及しましたが、主キーについても言及しました。これが外部キーの使用をサポートしているとは思いませんが、アップロード エントリの主キーを UUID として使用している場合は問題ありません。ただし、外部キーを使用しようとしている場合は、パス設定と rootDir 設定の組み合わせを調べてください。

于 2012-08-24T14:42:56.490 に答える