2017-07-19 136 views
0

我有上傳表單,我可以上傳任何類型的文件並將其路徑保存到數據庫。如果不在數據庫中保存任何相關信息,例如:filetype,filesize等,我可以獲取這些信息,同時我可以循環顯示結果並在頁面上顯示它們?使用Laravel在頁面上加載時獲取文件信息

這裏是我試過到目前爲止

public function fileUpload() 
{ 
    $allFiles = Documents::paginate(20); 

    $files = array(); 

    foreach ($allFiles as $file) { 

     $files[] = $this->fileInfo(pathinfo(public_path() . '/uploads/' . $file)); 
    } 

    return View::make('admin.files', [ 
     'files' => $files 
    ]); 
} 

public function fileInfo($filePath) 
{ 
    $file = array(); 
    $file['name'] = $filePath['filename']; 
    $file['extension'] = $filePath['extension']; 
    $file['size'] = filesize($filePath['dirname'] . '/' . $filePath['basename']); 

    return $file; 
} 

當我運行該頁面是

ErrorException這是我得到的錯誤:文件大小():統計失敗.....

這是做這件事的正確方法嗎?

更新:dd($filePath['dirname'] . '/' . $filePath['basename']);回報

string(126) "/var/www/html/site/public/uploads/{"id":2,"document_path":"aut6MnADFrPZTz4TJf0Y.pdf","document_name":"Some title for the file"}" 
+0

什麼是'$文件路徑[ '目錄名稱']的輸出。 '/'。 $文件路徑[ '基本名']'?我看到另一個'$ filePath ['extension']'和'$ filePath ['filename']',我猜這些應該包含在路徑中? – Clemenz

+0

我什至不能'dd'。只有這個錯誤出現 – Ivan

+0

甚至沒有'$ file = array();'?否則,請用'dd()'將filestat行註釋掉。 – Clemenz

回答

1

改變這一行

$files[] = $this->fileInfo(pathinfo(public_path() . '/uploads/' . $file)); 

$files[] = $this->fileInfo(pathinfo(public_path() . '/uploads/' . $file->document_path)); 
+0

現在路徑看起來正確'string(58)「/var/www/html/site/public/uploads/aut6MnADFrPZTz4TJf0Y.pdf」'但仍然出現錯誤'filesize():stat僅在' – Ivan

+0

'dd($ filePath ['dirname']。'/'。$ filePath ['basename'])'看看它是否是正確的路徑 –

+0

是的,路徑是正確的'string(58)「/ var/www/HTML /網站/公/上傳/ aut6MnADFrPZTz4TJf0Y.pdf「' – Ivan