2014-11-04 132 views
0

我是cakephp和php的新手,我試圖在上傳文件後將文件保存在文件夾中。我正在關注本教程http://www.tuxradar.com/content/cakephp-tutorial-build-file-sharing-application非法字符串偏移'錯誤'

我有這樣的代碼:

function uploadFile() {  
     $file = $this->data['Upload']['file']; 
    if ($file["error"] === UPLOAD_ERR_OK) { 
    $id = String::uuid(); 
    if (move_uploaded_file($file['tmp_name'], APP.'uploads'.DS.$id)) { 
     $this->data['Upload']['id'] = $id; 
     $this->data['Upload']['user_id'] = $this->Auth->user('id'); 
     $this->data['Upload']['filename'] = $file['name']; 
     $this->data['Upload']['filesize'] = $file['size']; 
     $this->data['Upload']['filemime'] = $file['type']; 
     return true; 
    } 
    } 
    return false; 
} 

,它是給我這個錯誤:Illegal string offset 'error'
我想這"var_dump($file["error"]);"
和它返回string(1) "1"
什麼是我的問題,我如何解決。
感謝

+0

查看$ this-> data ['Upload']或檢查數組鍵'upload'。 – Knase 2014-11-04 21:50:45

+0

我剛剛試圖刪除['上傳'] ['文件']和var_dumb給我陣列(2){[「上傳」] =>數組(3){[「標題」] =>字符串(2)「 mm「[」description「] => string(0)」「[」file「] => string(24)」15您不知道Me.mp3「} [」User「] => array(1){ [「User」] => array(1){[0] => string(1)「3」}}}。現在我有一個問題:未定義的索引:錯誤 – user3768804 2014-11-04 22:07:55

+0

你用過嗎?<?php echo $ this-> Form-> create('Upload',array('type'=>'file'));?>'? – Abhishek 2014-11-05 06:17:57

回答

-1

我認爲這個問題是因爲下載並未造成任何錯誤,這是爲什麼錯誤索引不存在,這就是爲什麼我建議你在測試寫:

if(isset($file['error']) && $file['error'] === UPLOAD_ERR_OK){ 
    //your code here 
} 

我希望我有幫助。

+0

不幸的是我試過了,我仍然得到相同的錯誤。它給出了錯誤:未定義的索引:錯誤,名稱,大小,類型,tmp_name。我猜測這是因爲它們不是數組的一部分。我想我需要嘗試一個不同的功能。 – user3768804 2014-11-05 05:05:21

+0

這個答案中的條件永遠不會通過。有些東西不能同時設置(條件的第一部分)_and_等於某些東西(第二部分)。從條件的第一部分刪除否定。 – 2014-11-05 13:02:23