$request = $event->getRequest();
print_r($request->files);die;
给了我
Symfony\Component\HttpFoundation\FileBag Object
(
[parameters:protected] => Array
(
[files] => Array
(
[0] => Symfony\Component\HttpFoundation\File\UploadedFile Object
(
[test:Symfony\Component\HttpFoundation\File\UploadedFile:private] =>
[originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => Chrysanthemum.jpg
[mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/jpeg
[size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 879394
[error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
[pathName:SplFileInfo:private] => /tmp/phpmUl54W
[fileName:SplFileInfo:private] => phpmUl54W
)
)
)
)
我试图获得'originalname'的值,即“Chrysanthemum.jpg”,而不是求助于循环,但我似乎无法找到正确的语法
使用1UP文件上传器,但我认为这不重要
答案 0 :(得分:15)
当您上传文件时,您会获得UploadFile
(API link)个对象(基本上是数组的包装器)。
$this->getRequest()->files[0]->getClientOriginalName();
现在无法尝试,但您可能需要这样做:
$this->getRequest()->files['name_of_file_field_in_post']->getClientOriginalName();
您可以使用表单字段的名称替换name_of_file_field_in_post
。
答案 1 :(得分:12)
2015年更新:
$request->files->get('your-file-name')->getClientOriginalName();
your-file-name
对我而言只是file
。
这可能也会有所帮助: https://github.com/1up-lab/OneupUploaderBundle/issues/21
答案 2 :(得分:6)
这对我来说很有用,我猜OneUp Class的处理方式有点不同
use Oneup\UploaderBundle\Event\PostPersistEvent;
class UploadListener
{
public function onUpload(PostPersistEvent $event)
{
$request = $event->getRequest();
$original_filename = $request->files->get('blueimp')->getClientOriginalName();
}
}
Relevent Frontend
<input id="fileupload" type="file" name="blueimp" data-url="{{ oneup_uploader_endpoint('images') }}" multiple />
答案 3 :(得分:1)
我正在使用symfony 4,
我想获取文件的原始名称。对我有用的是:
$form = $this->createForm(SomeType::class, $object);
if($form->isSubmitted() && $form->isValid()) {
$fileName = $object->getImage()->getClientOriginalName();
}
在我的例子中,getImage()是文件上载字段名称的getter。因此,这将更改为文件上载字段的相关getter函数。