image - 从 UploadedFile 类访问 $FILE ['tmp_name' ]?

标签 image symfony upload

如果我打印 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 , 所以 UploadedFileSplFileInfo 继承所有方法.

使用 $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/

相关文章:

android - 您上传了一个可调试的 APK。出于安全原因,您需要先禁用调试,然后才能将其发布到 Google Play-Upload apk to google play

android - 如何为 Android 游戏绘制可滚动的背景

javascript - 以编程方式更改图像特征

php - 在 Symfony2 中创建服务表单

python - Flask 文件上传挂起

javascript - APC 和 Codeigniter 的进度条 - IE 和 Chrome 的问题

java - 将灰度位图转换为二维数组

html - css - 如何在未指定父 div 宽度时使 p 元素的宽度为 's width follows parent div ' s

Symfony2 从与另一个 oneToMany 相关的实体 oneToMany 获取值

php - Doctrine 使用连接表返回结果不工作 Symfony2