【发布时间】:2015-06-14 13:57:51
【问题描述】:
是否可以将生成的 Dropzone.js 缩略图发送到服务器?
我已经尝试过“发送”事件,但是我无法访问缩略图:
myDropzone.on('sending', function(file, xhr, formData) {
});
还有一个“缩略图”事件,但我无法访问 formData:
myDropzone.on('thumbnail', function(file, dataUrl) {
});
编辑 @mirata 我在 dropzone.js 文件中更改了一些内容:
Dropzone.prototype._finished = function(files, responseText, e) {
var file, _i, _len;
for (_i = 0, _len = files.length; _i < _len; _i++) {
file = files[_i];
file.status = Dropzone.SUCCESS;
file.fid = responseText;
this.emit("success", file, responseText, e);
this.emit("complete", file);
}
[...]
};
我添加了“file.fid = responseText;”存储服务器响应(在我的例子中是 fileid)(应该在第 1356 行,Dropzone.js v4)。
在第 309 行,“file.thumbnail = dataUrl;”
[...]
thumbnail: function(file, dataUrl) {
var thumbnailElement, _i, _len, _ref;
if (file.previewElement) {
file.thumbnail = dataUrl;
file.previewElement.classList.remove("dz-file-preview");
[...]
}
},
[...]
最后我用“成功”事件保存了我的缩略图:
myDropzone.on('success', function(file) {
$.ajax({
url: 'url',
method: 'post',
data: {
fileId: file.fid,
thumbnail: file.thumbnail
}
});
});
希望这会有所帮助!
【问题讨论】: