从UploadedFile类访问$ _FILE ['tmp_name']?

Car*_*rlo 9 upload image symfony

如果我打印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,
)
Run Code Online (Sandbox Code Playgroud)

这就是我在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);

  }
Run Code Online (Sandbox Code Playgroud)

所以在保存之前没有"tmp_name"我需要调整图像大小.

我是否需要直接从$ _FILE数组中读取它?

Nic*_*tel 20

使用 $uploadedFile->getRealPath()

Symfony\Component\HttpFoundation\File\UploadedFileextends Symfony\Component\HttpFoundation\File\File,扩展了PHP SplFileInfo,因此UploadedFile继承了所有方法SplFileInfo.

使用$uploadedFile->getRealPath()了该文件的绝对路径.您还可以使用其他方法,例如getFilename()getPathname().有关可用方法的完整列表SplFileInfo,请参阅文档.

Symfony的File类添加了一些额外的方法,例如move()getMimeType(),并添加了向后兼容性getExtension()(在PHP 5.3.6之前不可用).UploadedFile加上最重要的是,如一些额外的方法getClientOriginalName()getClientSize(),它提供了你通常会从获得相同的信息$_FILES['name']$_FILES['size'].