【发布时间】:2014-04-01 12:13:55
【问题描述】:
我正在尝试使用Dropzone.js 上传生成的客户端文档(暂时的图像)。
// .../init.js
var myDropzone = new Dropzone("form.dropzone", {
autoProcessQueue: true
});
一旦客户完成了他的工作,他只需点击一个调用保存功能的保存按钮:
// .../save.js
function save(myDocument) {
var file = {
name: 'Test',
src: myDocument,
};
console.log(myDocument);
myDropzone.addFile(file);
}
console.log() 正确返回我的文档内容
data:image/png;base64,iVBORw0KGgoAAAANS...
此时,我们可以在拖放区看到上传文档的进度条,但是上传失败。
这是我的(标准 dropzone)HTML 表单:
<form action="/upload" enctype="multipart/form-data" method="post" class="dropzone">
<div class="dz-default dz-message"><span>Drop files here to upload</span></div>
<div class="fallback">
<input name="file" type="file" />
</div>
</form>
我有一个接收发布请求的 Symfony2 控制器。
// Get request
$request = $this->get('request');
// Get files
$files = $request->files;
// Upload
$do = $service->upload($files);
从 dropzone 上传(通过拖放或单击)正在工作并且上传成功,但使用 myDropzone.addFile() 函数在我的控制器中返回一个空对象:
var_dump($files);
返回
object(Symfony\Component\HttpFoundation\FileBag)#11 (1) {
["parameters":protected]=>
array(0) {
}
}
我认为我没有在保存功能中正确设置我的 var 文件。 我尝试创建 JS 图像(var img = new Image() ...)但没有任何成功。
感谢您的帮助!
【问题讨论】:
-
看看这个包:github.com/1up-lab/OneupUploaderBundle。它解决了您遇到的问题以及您将来可能遇到的许多其他问题。
-
对不起,但不。我的 dropzone 是作为我的控制器和动作的功能。是 addFile 函数的使用不起作用,因为我使用包含图像源的输入(在 js 中动态创建)并且我不知道如何将其转换为被 addFile 函数接受。
标签: javascript jquery symfony file-upload dropzone.js