Pull to refresh

Comments 7

Хорошая статья. Побольше статей по Symfony2!
$filename = $_FILES['file']; # принимает наш файл


а почему не так?
$this->getRequest()->files->get('file')


Да и UploadedFile вообще использовать?
Со всем уважением, если у вас получится сделать так, как вы написали в комментарии, то буду признателен, если скажете как… Я потратил на это часа 2-3 но так ничего не получилось. Файл в
$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?
Вполне возможно что из-за отсутствия dataType: 'json' не отрабатывал $this->getRequest()->files->get('file'), но сказать не могу…

Насчет /etc/passwd, возможно вы правы… Но админы априори ж не злые? Надеюсь.
Sign up to leave a comment.

Articles