【问题标题】:How to get uploaded file's tmp_name in Laravel 5.0如何在 Laravel 5.0 中获取上传文件的 tmp_name
【发布时间】:2015-02-11 23:21:34
【问题描述】:

使用 Laravel 5,我一直在尝试获取上传的文件并使用文件系统外观移动它,以从 Laravel 使用的飞行系统的功能中获利。

问题是,即使我尝试获取代表 $_FILES[file][tmp_name] 的路径、tmp_name、diskname 或 wathever 属性,我似乎也无法访问它!

我不想使用 $_FILES,因为它违反了最佳实践,如果要更改某些内容,它将不再起作用,所以我真的想使用:

$request->file('import')

访问我导入的文件。

UploadedFile 类中有一个 move 方法,但我需要设置一个本地路径,但不一定如此。然后在 FileSystem 合同中有一个移动方法,但它要求一个我不知道的本地路径,因为我找不到 UploadedFile 的本地 tmp_name ...

我该怎么做呢,我真的迷路了。

【问题讨论】:

  • 你不是说$request->file('import')吗?
  • 确实是错字!

标签: php symfony laravel


【解决方案1】:

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

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

file 方法返回的对象是 Symfony\Component\HttpFoundation\File\UploadedFile 类,其中 扩展了 PHP SplFileInfo 类并提供了多种方法 用于与文件交互。

所以你可以这样做

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

它会返回你的本地路径!

【讨论】:

  • 这实际上返回完整路径和临时文件名。
猜你喜欢
  • 1970-01-01
  • 2019-10-27
  • 1970-01-01
  • 1970-01-01
  • 2013-03-18
  • 2020-11-29
  • 1970-01-01
  • 2015-05-10
  • 1970-01-01
相关资源
最近更新 更多