【发布时间】:2013-12-02 12:43:34
【问题描述】:
我有一个上传文件的应用程序。 我正在使用脚本 Dropzone.js 并且我在这里遵循了一个答案以使其与 symfony 一起使用。
控制器:
public function indexAction() {
return $this->render('testDropzoneBundle:Default:index.html.twig');
}
public function uploadAction() {
$request = $this->get('request');
$files = $request->files;
foreach ($files as $uploadedFile) {
$name = uniqid();
$em = $this->getDoctrine()->getManager();
$f = new File();
$f->setName(($uploadedFile->getClientOriginalName());
$f->setFile($uploadedFile);
$f->preUpload();
$f->upload();
$em->persist($f);
$em->flush();
}
return new Response($name);
}
和视图:
<form action="{{ path('upload') }}" method="post" class="dropzone">
<div class="fallback" id="mydropzone">
<input name="file" type="file" multiple />
</div>
但现在我想为我在页面上拖动的每个文件设置一个名称。 我想显示一个询问名称的对话框。 像这样: dropzone.js 第 538 行
var myName = prompt('Enter the name for file '+file.name);
file.name = myName;
但是如何将名称从脚本发送到控制器?
【问题讨论】:
-
file.name = myName;这里的文件是什么实例?拖放区? -
是的。但问题是file.name 永远不会假定为myName。我应该在哪里询问名称并替换?
-
所以基本上你想让你的用户将文件拖到浏览器中,然后在一个提示对话框中她输入她想要的文件名,然后点击确定文件被上传并保存用户选择的名称。
-
完全正确。我几乎准备好了一切,我可以上传文件,我可以从脚本中保存文件。但我不能更改文件名
标签: javascript php symfony