Имя загруженного файла
$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, но я не думаю, что важно
Ответы
Ответ 1
Это заработало для меня, я думаю, что класс OneUp обрабатывает его несколько иначе
use Oneup\UploaderBundle\Event\PostPersistEvent;
class UploadListener
{
public function onUpload(PostPersistEvent $event)
{
$request = $event->getRequest();
$original_filename = $request->files->get('blueimp')->getClientOriginalName();
}
}
Соответствующий фронтэнд
<input id="fileupload" type="file" name="blueimp" data-url="{{ oneup_uploader_endpoint('images') }}" multiple />
Ответ 2
Когда вы загружаете файлы, вы получаете UploadFile
(API link) (в основном обертки массива).
$this->getRequest()->files[0]->getClientOriginalName();
Не могу попробовать это сейчас, но вам может понадобиться сделать это вместо этого:
$this->getRequest()->files['name_of_file_field_in_post']->getClientOriginalName();
где вы замените name_of_file_field_in_post
своим именем поля формы.
Ответ 3
2015 Обновление:
$request->files->get('your-file-name')->getClientOriginalName();
your-file-name
для меня было просто file
.
Вероятно, это тоже поможет: https://github.com/1up-lab/OneupUploaderBundle/issues/21
Ответ 4
Я использую symfony 4,
Я хотел получить исходное имя файла. Что для меня работало:
$form = $this->createForm(SomeType::class, $object);
if($form->isSubmitted() && $form->isValid()) {
$fileName = $object->getImage()->getClientOriginalName();
}
В моем случае getImage() является получателем для имени поля для загрузки файла. Таким образом, это изменится на вашу соответствующую функцию getter для поля загрузки файла.