我使用插件“ 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中做到的方式。有办法吗?
感谢您的阅读,请提供帮助。