2014-09-04 29 views
-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']}"); 
     } 

能正常工作本地,任何想法?

+1

這看起來非常非常規,如果它很容易打破/濫用。作爲你的問題證明。 – mark 2014-09-04 20:25:30

回答

0

問題是php標記結束後的空格。 wohoo ....

相關問題