dropzone.js 从服务器检索时抑制进度条
dropzone.js Suppress progress bar when retrieving from server
使用 dropzone.js,我在使用它时没有遇到任何问题,包括检索之前已上传到服务器的图像。
我遇到的唯一问题是,当我在页面刷新时从服务器检索这些文件时(这意味着它们在该页面的当前使用期间没有上传),上传进度条会永久显示。有什么办法可以抑制以前上传的图片的进度条吗?我想在上传时继续使用进度条,不想从模板中删除 css。
并不是说它在这种情况下有用,但这是我用来检索文件并在远程预览中显示它们的代码 div。
Dropzone.options.myDropzone = {
previewsContainer: document.getElementById("previews"),
init: function()
{
thisDropzone = this;
$.get('../cgi/fileUpload.php', function(data)
{
$.each(data, function(key,value)
{
var mockFile = { name: value.name, size: value.size};
thisDropzone.options.addedfile.call(thisDropzone, mockFile);
thisDropzone.options.thumbnail.call(thisDropzone, mockFile, value.uploaddir+value.name);
var strippedName = (value.name).slice(11);
fileList[i] = {"serverFileName" : value.name, "fileName" : value.name, "fileSize" : value.size, "fileId" : i };
i++;
var removeButton = Dropzone.createElement("<button class=\"btn btnremove\" style=\"width: 100%;\">Remove file</button>");
var _this = this;
removeButton.addEventListener("click", function(e)
{
e.preventDefault();
e.stopPropagation();
thisDropzone.removeFile(mockFile);
});
mockFile.previewElement.appendChild(removeButton);
});
});
},
url: "../cgi/fileUpload.php"
};
已回答!选择在交付后使用 jquery 删除 div:
$(".dz-progress").remove();
不太优雅,但很管用。
确保没有进度条等...
thisDropzone.emit("complete", mockFile);
FAQ Dropzone.JS
这是一个老问题,但我遇到了同样的问题。我的解决方案是编辑我的 .css 文件:
.dz-progress {
/* progress bar covers file name */
display: none !important;
}
我遇到了同样的问题。
$('.dz-progress').hide();
如果您使用 .hide() 而不是 .remove() 方法,那就太好了。
因为 .remove() 删除了那个 div 永久的。
试试这个对我有用
$(".spinner").隐藏();
你可以尝试这个并工作
init: function() {
this.on("maxfilesexceeded", function(file) {
this.removeAllFiles();
this.addFile(file);
});
this.on("addedfile", function(file) {
console.log("Added file.");
$(this.previewsContainer).closest('.crm-upload-wrap').find('.badge').html(this.files.length);
console.log(this);
console.log(file);
});
var mockFile = { name: "myimage.jpg", size: 1235, type: "image/jpeg", serverId: 151987, accepted: true }; // use actual id server uses to identify the file (e.g. DB unique identifier)
this.emit("addedfile", mockFile);
this.options.thumbnail.call(this, mockFile, 'https://lh3.googleusercontent.com/40gtienq1vthvuWpzCErQJqucB6oxANPHawkEiF6BEJH0Q7mJwHuOyUeRwMBIGb8vO8=s128');
this.emit("success", mockFile);
this.emit("complete", mockFile);
this.files.push(mockFile);
$(this.previewsContainer).closest('.crm-upload-wrap').find('.badge').html(this.files.length);
$(this.previewsContainer).find('.dz-progress').hide(); //<-- okkk
},
如果您有任何 class 和 "spinner",这将隐藏所有这些元素。显示进度的 div 元素有一个 "dz-preview" class。正如其他回复中提到的,您可以增加现有的 class 以欺骗 Dropzone 认为上传已完成,或者您可以使用 class "dz-preview".
清除元素
使用 dropzone.js,我在使用它时没有遇到任何问题,包括检索之前已上传到服务器的图像。
我遇到的唯一问题是,当我在页面刷新时从服务器检索这些文件时(这意味着它们在该页面的当前使用期间没有上传),上传进度条会永久显示。有什么办法可以抑制以前上传的图片的进度条吗?我想在上传时继续使用进度条,不想从模板中删除 css。
并不是说它在这种情况下有用,但这是我用来检索文件并在远程预览中显示它们的代码 div。
Dropzone.options.myDropzone = {
previewsContainer: document.getElementById("previews"),
init: function()
{
thisDropzone = this;
$.get('../cgi/fileUpload.php', function(data)
{
$.each(data, function(key,value)
{
var mockFile = { name: value.name, size: value.size};
thisDropzone.options.addedfile.call(thisDropzone, mockFile);
thisDropzone.options.thumbnail.call(thisDropzone, mockFile, value.uploaddir+value.name);
var strippedName = (value.name).slice(11);
fileList[i] = {"serverFileName" : value.name, "fileName" : value.name, "fileSize" : value.size, "fileId" : i };
i++;
var removeButton = Dropzone.createElement("<button class=\"btn btnremove\" style=\"width: 100%;\">Remove file</button>");
var _this = this;
removeButton.addEventListener("click", function(e)
{
e.preventDefault();
e.stopPropagation();
thisDropzone.removeFile(mockFile);
});
mockFile.previewElement.appendChild(removeButton);
});
});
},
url: "../cgi/fileUpload.php"
};
已回答!选择在交付后使用 jquery 删除 div:
$(".dz-progress").remove();
不太优雅,但很管用。
确保没有进度条等...
thisDropzone.emit("complete", mockFile);
FAQ Dropzone.JS
这是一个老问题,但我遇到了同样的问题。我的解决方案是编辑我的 .css 文件:
.dz-progress {
/* progress bar covers file name */
display: none !important;
}
我遇到了同样的问题。
$('.dz-progress').hide();
如果您使用 .hide() 而不是 .remove() 方法,那就太好了。 因为 .remove() 删除了那个 div 永久的。
试试这个对我有用 $(".spinner").隐藏();
你可以尝试这个并工作
init: function() {
this.on("maxfilesexceeded", function(file) {
this.removeAllFiles();
this.addFile(file);
});
this.on("addedfile", function(file) {
console.log("Added file.");
$(this.previewsContainer).closest('.crm-upload-wrap').find('.badge').html(this.files.length);
console.log(this);
console.log(file);
});
var mockFile = { name: "myimage.jpg", size: 1235, type: "image/jpeg", serverId: 151987, accepted: true }; // use actual id server uses to identify the file (e.g. DB unique identifier)
this.emit("addedfile", mockFile);
this.options.thumbnail.call(this, mockFile, 'https://lh3.googleusercontent.com/40gtienq1vthvuWpzCErQJqucB6oxANPHawkEiF6BEJH0Q7mJwHuOyUeRwMBIGb8vO8=s128');
this.emit("success", mockFile);
this.emit("complete", mockFile);
this.files.push(mockFile);
$(this.previewsContainer).closest('.crm-upload-wrap').find('.badge').html(this.files.length);
$(this.previewsContainer).find('.dz-progress').hide(); //<-- okkk
},
如果您有任何 class 和 "spinner",这将隐藏所有这些元素。显示进度的 div 元素有一个 "dz-preview" class。正如其他回复中提到的,您可以增加现有的 class 以欺骗 Dropzone 认为上传已完成,或者您可以使用 class "dz-preview".
清除元素