-3
[這是CakePHP中]在一個名爲PublicacionesController控制器稱爲getfile($id)
功能
我已經$this->redirect("../" . $file['file']);
其重定向到一個文件來打開它。我測試了echo文件['file'],這沒關係。問題是,不是打開文件,而是重定向到.../publicaciones/getfile/$ id。
我看到一些人有downvoting這所以我會後整個函數fun:
function getfile($id){
Configure::write('debug', 2);
$fileDir = opendir(APP . 'webroot' . DS . 'files');
while($entryName = readdir($fileDir)) $files[] = $entryName;
closedir($fileDir);
$filesResult = array();
$arrSort = array();
$classTypes = array(
'jpg' => 'img',
'png' => 'img',
'gif' => 'img',
'jpeg' => 'img',
'bmp' => 'img',
'doc' => 'doc',
'pdf' => 'pdf',
'xls' => 'xls'
);
foreach($files as $file){
//preg_match("/.+_([$id])_[0-9]{8}.+[doc|pdf|xls]/i",$file,$fileMatch);
preg_match("/($id).+[doc|pdf|xls|jpg|jpeg|gif|png|bmp]/i",$file,$fileMatch);
if(count($fileMatch)){
$props = explode('_',$file);
$ext = explode('.',$file);
$index = count($filesResult);
$filesResult['i'.$index] = array(
'file' => "files/{$file}",
'date' => date('d/m/Y',filectime(APP . "webroot/files/{$file}")),
'ext' => $classTypes[$ext[count($ext)-1]]
);
$fileDate = filectime(APP . "webroot/files/{$file}");
$index = count($filesResult)-1;
$arrSort['i'.$index] = $fileDate;
}
}
arsort($arrSort);
$filesResult = array_merge($arrSort,$filesResult);
$file = $filesResult['i0'];
//echo $file['file'];
//die();
$this->redirect("../{$file['file']}");
}
能正常工作本地,任何想法?
這看起來非常非常規,如果它很容易打破/濫用。作爲你的問題證明。 – mark 2014-09-04 20:25:30