2015-06-21 64 views
1

我正在使用Laravel + Slim構建應用程序。如何使用Laravel&Slim從發佈請求中獲取文件屬性

我有文件上傳表單,我成功設法從文本輸入的信息:

$request = $app->request; 

$title = $request->post('title'); 

但我怎麼可以從文件中輸入得到這樣的大小,名稱tmp_name的值等屬性?

我發現this問題,並試圖這樣的,但我得到這個錯誤:

致命錯誤:調用未定義的方法修身\ HTTP \支持::文件()

+0

您正在使用什麼版本的Slim? –

回答

2

有幾個方法,你可以在使用laravel's上傳一些文件時應用。 在我的想法中,這是他們中的幾個,也是最重要的。

$request->hasFile('file_name') 

hasFile檢查用戶上傳文件的方法。

$request->file('file_name')->isValid() 

isValid方法照顧檢查文件中有任何錯誤。

這些檢查後,您必須獲取文件屬性並移動到所需的位置。爲了這些目的。

$document = $request->file('file_name'); 

獲取文檔信息對象。所以之後你可以使用我的laravel FileUploader提供的輔助函數。

$document->getRealPath(); 
$document->getClientOriginalName(); 
$document->getClientOriginalExtension(); 
$document->getSize(); 
$document->getMimeType(); 

終於將上傳的文件

$document->move($destinationPath); 
$document->move($destinationPath, $fileName); 

更新

但是如果使用超薄上傳文件,你必須使用本地PHP方法,如全局Files陣列獲取文件和move_uploaded_file移動文件並像這樣。

如果您還有任何與上傳文件或文件驗證相關的問題,請告訴我。

+0

嗨,謝謝!正在使用本機php方法(FILES數組)。我想得太過分了 – NicuVlad