如何在 Laravel 5.0 中获取上传文件的临时文件名(tmp_name)

5
使用Laravel 5,我一直在尝试使用文件系统门面将上传的文件移动以利用Laravel使用的flysystem的强大功能。
问题是,即使我尝试获取路径、tmp_name、diskname或代表$_FILES[file][tmp_name]的任何属性,我似乎也无法访问它!
我不想使用 $_FILES,因为这违反了最佳实践,如果有什么改变,它将不再起作用,所以我真的想使用:
$request->file('import')

要访问我的导入文件。

UploadedFile类中有一个移动方法,但我需要设置一个本地路径,这并不是必须的。然后,在FileSystem合同中有一个move meethod,但它要求提供一个本地路径,而我不知道上传文件的本地tmp_name是什么。

我应该如何操作,我真的很迷茫。


1
你的意思是 $request->file('import') 吗? - lukasgeiter
确实,那是一个打错字! - Mathieu Dumoulin
1个回答

15

为什么我总是在发布问题后才找到答案呢...

回答这个问题很简单,使用SplFileInfo功能:

文件方法返回的对象是Symfony\Component\HttpFoundation\File\UploadedFile类的实例,它继承了PHP SplFileInfo类并提供了各种方法来与文件交互。

因此,您可以执行以下操作:

$request->file('import')->getPathName()

它将返回您的本地路径!


这实际上返回完整的路径和临时文件名。 - Pathros

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接