2012-05-08 148 views
0

使用Upload Plugin。我想上傳foreign_key文件夾中的文件以「隨意」保證,因爲在覆蓋文件之前,它似乎沒有檢查現有文件。上傳插件 - 如何覆蓋路徑?

我想一個文件上傳到類似:

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

當我設置'pathMethod'=>'random',我得到了3隨機數的文件夾(0-100之間),但我不明白的主密鑰文件夾。或者,如果我設置'pathMethod'=>'primaryKey',我得到主鍵文件夾,但不是隨機數。

Upload behavior of the plugin,有一個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'), 
     ), 
    ) 
); 

回答

0

我剛用過這個有一天。首先從它看起來,你可以得到但不是兩個。我不知道有關uploadSettings()函數不工作,但我會嘗試使用它像這樣:

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

這似乎接受陣列和非陣列,但它可能沒有被正確接收陣列,所以嘗試就這樣。

此外,至於你想要完成什麼,你提到了一個外鍵,但也提到了主鍵。我不相信這支持使用外鍵,但是如果你使用上傳條目的主鍵作爲UUID,它應該沒問題。但是,如果您嘗試使用外鍵,請查看路徑設置和rootDir設置的組合。