Comments 7
Хорошая статья. Побольше статей по Symfony2!
$filename = $_FILES['file']; # принимает наш файл
а почему не так?
$this->getRequest()->files->get('file')
Да и UploadedFile вообще использовать?
и еще:
Есть же JsonResponse
return new Response(json_encode(array(
...
Есть же JsonResponse
Со всем уважением, если у вас получится сделать так, как вы написали в комментарии, то буду признателен, если скажете как… Я потратил на это часа 2-3 но так ничего не получилось. Файл в
Sonata просто не видит, что очень печально, ибо изначальный вариант был такой же как вы и предложили.
$this->getRequest()->files->get('file')
Sonata просто не видит, что очень печально, ибо изначальный вариант был такой же как вы и предложили.
я бы вообще сделал через
$form = $this
->createFormBuilder(null, [
'csrf_protection' => false
])
->add('file', 'file', [
'constraints' => [
// тут набор валидаторов (размер, тип файла и т.п.)
]
])->getForm();
$form->handleRequest($this->getRequest());
if ($form->isValid()) {
// сохраняем и т.п.
} else {
// возвращаем ошибку
}
$.ajax({
url: "/upload-file", # идем по пути
type: "POST",
data: formdata, # отправляем туда наши файлы
processData: false,
contentType: false,
success: function (res) {
var userData = jQuery.parseJSON(res); # парсим результат
$_this.parent().find('input[type="text"]').val(userData.filePath); #
1. есть dataType: 'json', чтобы не делать parseJSON вручную
2. ничего страшного не случится если «добрый» админ в поле запишет /etc/passwd?
Sign up to leave a comment.
SonataAdminBundle + AJAX загрузка файлов