2014-09-23 67 views
1

我試圖修改一個用CakePHP編寫的通訊平臺來創建附件。在創建新聞簡報時,可以上傳將作爲附件添加的圖像文件。然而,在表單提交(通訊創建是一種形式)之後,$ _FILES變量是空的。儘管該文件的名稱包含在POST數據中。

下面是一些形式的HTML

<form action='/systeem/nieuwsbrieven/' method='POST'> 

<tr> 

    <td style='padding: 10px;'><textarea name='data[Nieuwsbrieven][omschrijving]' style='width: 100%;height: 150px;'></textarea></td> 

</tr> 

<tr> 

    <td style='padding: 10px;'><input type="file" id='fileupload' name="data[Nieuwsbrieven][attachment]" style='width: 100%;height: 150px;'></td> 

</tr> 

的我加入了 '數據[Nieuwsbrieven] [omschrijving]',因爲該位的作品。這裏是處理表單功能:

function nieuwsbrieven() { 
    if (isset($this->data)) { 
     echo 'DATA:'; 
     var_dump($this->data); 
     echo 'FILES:'; 
     var_dump($_FILES); 
     //echo $_FILES['data[Nieuwsbrieven][attachment]']['name']."<< THE NAME"; 
     exit(); 
    } 
    else { 

     echo "data bestaat niet"; 
    } 

    if(!empty($this->data)) { 

     $this->data['Nieuwsbrieven']['datum'] = mktime(); 

     $datum = explode('-', $this->data['Nieuwsbrieven']['convert_datum']);   

     $this->data['Nieuwsbrieven']['plan_datum'] = mktime(0, 0, 0, $datum[1], $datum[0], $datum[2]); 

     $this->Nieuwsbrieven->save($this->data); 
     //$this->redirect("/systeem/verzenden/"); 

    } 

} 

正如你所看到的,我的var_dump的$這 - >數據和$ _FILES,這裏是使輸出:

DATA: array(1) { ["Nieuwsbrieven"]=> array(5) { ["content"]=> string(21) " 
test content 

" ["titel"]=> string(12) "test subject" ["convert_datum"]=> string(10) "25-09-2014"  ["omschrijving"]=> string(4) "test" ["attachment"]=> string(16) "137785222989.jpg" } } FILES: array(0) { } 

這不是一個INI設置問題,因爲我嘗試了一個測試腳本與香草PHP和能夠上傳文件就好了。

回答

1

嘗試使用下面的表格申報形式:

HTML

<form action='/systeem/nieuwsbrieven/' method='POST' enctype="multipart/form-data"> 

CakePHP的

echo $this->Form->create('User', array('type' => 'file')); 
+0

我不知道那是什麼甚至意味着它的工作。謝謝! – 2014-09-23 08:19:57

+0

不得不等待2分鐘; – 2014-09-23 08:29:26

0

你錯過了ENCTYPE ..

當喲你的表單包括任何元素添加multipart/form-data與你的表單標籤。 像: <form action='/systeem/nieuwsbrieven/' method='POST' enctype="multipart/form-data">