如何使用 Laravel & Slim 从 post 请求中获取文件属性

How to get file properties from a post request using Laravel & Slim

我正在使用 Laravel + Slim 构建应用程序。

我有一个带有文件上传的表单,我成功地从文本输入中获取了信息:

$request = $app->request;

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

但是如何从文件输入中获取大小、名称、tmp_name 等属性?

我找到了 问题并尝试这样做,但我得到了这个错误:

致命错误:调用未定义的方法 Slim\Http\Request::file()

当您使用 laravel 上传一些文件时,您可以应用几种方法。 这是他们中的一对,在我看来最重要。

$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);

更新

但是,如果您使用 slim 上传文件,则必须使用本机 php 方法,例如全局 Files 数组获取文件和 move_uploaded_file 移动文件等。

如果您对上传文件或文件验证仍有任何疑问,请告诉我。