如果我打印 UploadedFile 实例的内容,这就是我得到的
array (
'opt_image_header' =>
Symfony\Component\HttpFoundation\File\UploadedFile::__set_state(array(
'test' => false,
'originalName' => 'triangle-in-the-mountains.jpg',
'mimeType' => 'image/jpeg',
'size' => 463833,
'error' => 0,
)
这就是我在 Controller 中获取上传文件的方式。在移动它之前,我应该调整它的大小。
foreach($request->files as $uploadedFile){
$ext = '.' . $uploadedFile['opt_image_header']->guessExtension();
$filename = sha1(uniqid(mt_rand(), true)) . $ext;
$uploadedFile['opt_image_header']->move($path . '/images/', $filename);
}
所以在保存图像之前没有我需要调整图像大小的“tmp_name”。
我是否需要直接从 $_FILE 数组中读取它?
最佳答案
使用 $uploadedFile->getRealPath()
Symfony\Component\HttpFoundation\File\UploadedFile
扩展 Symfony\Component\HttpFoundation\File\File
,它扩展了 PHP 的 SplFileInfo
, 所以 UploadedFile
从 SplFileInfo
继承所有方法.
使用 $uploadedFile->getRealPath()
为文件的绝对路径。你也可以在上面使用其他方法,比如getFilename()
或 getPathname()
.有关可用方法的完整列表(SplFileInfo
),请参阅 the docs .
Symfony 的 File 类添加了一些额外的方法,例如 move()
和 getMimeType()
,并为 getExtension()
添加向后兼容性(在 PHP 5.3.6 之前不可用)。 UploadedFile
在此基础上添加了一些额外的方法,例如 getClientOriginalName()
和 getClientSize()
,它提供的信息与您通常从 $_FILES['name']
获得的信息相同和 $_FILES['size']
.
关于image - 从 UploadedFile 类访问 $FILE ['tmp_name' ]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23409178/