我目前正在開發一個表單來上傳文件到我正在處理的服務器上。我可以成功將文件上傳到我的應用程序文件夾之一,而不會出現問題。接下來我要做的是讀取上傳的文件並將其信息添加到數據庫中。要做到這一點,我使用CakePHP
的文件API
,但我無法讓構造函數工作。這裏是我的代碼CakePHP文件API
<?php
App::uses('Component', 'Controller');
App::uses('String', 'Utility');
App::uses('File', 'Utility');
class UploadComponent extends Component{
public $max_files = 1;
public $filePath;
public function upload($data = null){
if(!empty($data)){
if(count ($data) > $this->max_files){
throw new NotFoundException("Error procesando el pedido, el número máximo de archivos aceptados es {$this->max_files}", 1);
}
foreach($data AS $file){
$filename = $file['name'];
$file_tmp_name = $file['tmp_name'];
$dir = WWW_ROOT.'files'.DS.'uploads';
$allowed = array('txt');
if(!in_array(substr(strrchr($filename, '.'), 1), $allowed)){
throw new NotFoundException("Error procesando el pedido", 1);
}elseif(is_uploaded_file($file_tmp_name)){
move_uploaded_file($file_tmp_name, $dir.DS.String::uuid().$filename);
$filePath = $dir.DS.String::uuid().$filename;
echo gettype($filePath);
$import = new File($filePath); //this line throws an error
}
}
}
}
}
我很困惑的API
說,它收到的string
的形式,這是$filePath
的路徑,但它說,它的接收陣列。任何想法如何使其工作? 這些都是錯誤的框架顯示:
目錄名()預計參數1是字符串,給定陣列[CORE \蛋糕\實用\ File.php,線87]
is_dir()預計參數1至數組給定[CORE \ Cake \ Utility \ File.php,第88行]
basename()期望參數1爲字符串,數組給定[CORE \ Cake \ Utility \ File.php,第89行]
在此先感謝。
謝謝你,那就做到了! –