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 回答