Blueimp jQuery fileupload插件和Symfony:如何基于ID动态更改文件存储库名称?

时间:2018-09-20 08:57:37

标签: php jquery symfony blueimp

我使用插件“ blueimp jquery fileupload”以Javascript上传文件(那部分我说对了),然后我必须使用该插件附带的上载处理程序(UploadHandler.php)在服务器端处理上载。

在Symfony中工作时,我设法基于此php脚本创建了一个服务,该服务在我的控制器中工作(文件已上传到默认存储库中,但在我的页面上却收到错误消息“上传失败”,我没有不知道为什么,但是我猜这不是一个大问题),但问题是:

我想根据用户ID自定义存储库路径以上传文件,并且由于我将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中做到的方式。有办法吗?

感谢您的阅读,请提供帮助。

0 个答案:

没有答案