Blueimp jQuery fileupload Plugin и Symfony: как динамически изменить имя хранилища файлов на основе идентификатора? - PullRequest
0 голосов
/ 20 сентября 2018

Я использую плагин «blueimp jquery fileupload» для загрузки файлов в Javascript (та часть, которую я понял правильно), а затем мне приходится обрабатывать загрузки на стороне сервера, используя загрузчик, связанный с плагином (UploadHandler.php).

Работая в Symfony, мне удалось создать сервис на основе этого php-скрипта, и он работает на моем контроллере (файлы загружаются в репозиторий по умолчанию, но на моей странице появляется сообщение об ошибке «ошибка загрузки»)и я не знаю почему, но это не большая проблема, я думаю), но дело в том:

Я хотел бы настроить путь к хранилищу для загрузки файлов на основе идентификатора пользователя, и так как я вызываюфайл uploadhandler как сервис, я не знаю, как переопределить опции, используя функцию конструкции, как я мог бы сделать с базовым вызовом в php.

Вот мой код:

public function uploadFiles(Request $request)
{
    $uploadhandler  = $this->container->get('extranetcontratbundle.uploadhandler');
    $response = $uploadhandler->response;
    $files = $response['files'];

    return new JsonResponse($files);
}

В опциях UploadHandler.php есть:

$this->options = array(
        'script_url' => $this->get_full_url().'/'.$this->basename($this->get_server_var('SCRIPT_NAME')),
        'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/files/',
        'upload_url' => $this->get_full_url().'/files/',
        'input_stream' => 'php://input',
        'user_dirs' => false,
        'mkdir_mode' => 0755,
        'param_name' => 'files', 
...blabla

И я бы хотел переопределить опции аналогично тому, как я делал бы в «обычном» php:

$tmpImagesDir = JPATH_ROOT . 'tmp' . $userId .;
$tmpUrl = 'tmp/' . $userId . '/' . '/';

$uploadOptions = array('upload_dir' => $tmpImagesDir, 'upload_url' => $tmpUrl);
$uploadHandler = new UploadHandler($uploadOptions);

Но для этого мне нужно было бы написать «require_once (blabla)», и я бы создал сервис даром.Если я правильно понял, это не способ сделать это в Symfony.Есть ли способ?

Спасибо, что прочитали, помогите пожалуйста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...