获取 Plupload 队列中的剩余文件数
Get number of remaining files in Plupload queue
现在我在plupload.js
中有这样的东西:
$("#uploader").pluploadQueue({
// General settings
runtimes: 'html5,silverlight,flash',
url: baseurl + 'admin/pages_images/uploadtoserver/' + pageID,
browse_button : 'uploadFiles',
max_file_size: '300mb',
chunk_size: '1mb',
unique_names: true,
// Resize images on clientside if we can
// resize: {width: 320, height: 240, quality: 100},
// Specify what files to browse for
filters: [
{title: "Image files", extensions: "jpg,gif,png"},
{title: "Zip files", extensions: "zip"}
],
// Flash/Silverlight paths
flash_swf_url: baseurl + 'assets/js/plupload/plupload.flash.swf',
silverlight_xap_url: baseurl + 'assets/js/plupload/plupload.silverlight.xap',
// PreInit events, bound before any internal events
preinit: {
Init: function(up, info) {
log('[Init]', 'Info:', info, 'Features:', up.features);
},
UploadFile: function(up, file) {
log('[UploadFile]', file);
// You can override settings before the file is uploaded
// up.settings.url = 'upload.php?id=' + file.id;
// up.settings.multipart_params = {param1: 'value1', param2: 'value2'};
}
},
// Post init events, bound after the internal events
init: {
Refresh: function(up) {
// Called when upload shim is moved
log('[Refresh]');
},
StateChanged: function(up) {
// Called when the state of the queue is changed
log('[StateChanged]', up.state == plupload.STARTED ? "STARTED": "STOPPED");
},
QueueChanged: function(up) {
// Called when the files in queue are changed by adding/removing files
log('[QueueChanged]');
},
UploadProgress: function(up, file) {
// Called while a file is being uploaded
log('[UploadProgress]', 'File:', file, "Total:", up.total);
},
FilesAdded: function(up, files) {
// Callced when files are added to queue
log('[FilesAdded]');
plupload.each(files, function(file) {
log(' File:', file);
});
},
FilesRemoved: function(up, files) {
// Called when files where removed from queue
log('[FilesRemoved]');
plupload.each(files, function(file) {
log(' File:', file);
});
},
FileUploaded: function(up, file, info) {
// Called when a file has finished uploading
log('[FileUploaded] File:', file, "Info:", info);
var myuploader = $("#uploader").pluploadQueue();
myuploader.bind('QueueChanged', function(up, files){
remaining_files = myuploader.files.length;
alert('All Files uploaded!');
});
$.ajax({
type : "POST",
url : baseurl + 'admin/pages/reload/' + pageID,
success: function(data){
if(data) {
alert('File uploaded!');
} else {
alert('ajax error');
}
}
});
},
ChunkUploaded: function(up, file, info) {
// Called when a file chunk has finished uploading
log('[ChunkUploaded] File:', file, "Info:", info);
},
Error: function(up, args) {
// Called when a error has occured
// Handle file specific error and general error
if (args.file) {
log('[error]', args, "File:", args.file);
} else {
log('[error]', args);
}
}
}
});
$('#log').val('');
$('#clear').click(function(e) {
e.preventDefault();
$("#uploader").pluploadQueue().splice();
});
但是当然它不起作用,因为我不知道如何减少剩余的文件。或者准确地说,我不知道如何首先获取队列中所有文件的数量,所以我可以 -1 它们并与初始值进行比较。我该怎么做?
在FileUploaded
事件中检查up.total.queued
:
uploader.bind('FileUploaded', function(up, file, res)
{
if (up.total.queued == 0)
{
alert('Complete!');
}
});
您必须为此绑定一个事件并创建一个计数器。
完整的答案在这里。
var files_remaining = 0;
$("#uploader").pluploadQueue({
// General settings
runtimes: 'html5,silverlight,flash',
url: baseurl + 'admin/pages_images/uploadtoserver/' + pageID,
browse_button : 'uploadFiles',
max_file_size: '300mb',
chunk_size: '1mb',
unique_names: true,
// Resize images on clientside if we can
// resize: {width: 320, height: 240, quality: 100},
// Specify what files to browse for
filters: [
{title: "Image files", extensions: "jpg,gif,png"},
{title: "Zip files", extensions: "zip"}
],
// Flash/Silverlight paths
flash_swf_url: baseurl + 'assets/js/plupload/plupload.flash.swf',
silverlight_xap_url: baseurl + 'assets/js/plupload/plupload.silverlight.xap',
// PreInit events, bound before any internal events
preinit: {
Init: function(up, info) {
log('[Init]', 'Info:', info, 'Features:', up.features);
},
UploadFile: function(up, file) {
log('[UploadFile]', file);
// You can override settings before the file is uploaded
// up.settings.url = 'upload.php?id=' + file.id;
// up.settings.multipart_params = {param1: 'value1', param2: 'value2'};
}
},
// Post init events, bound after the internal events
init: {
Refresh: function(up) {
// Called when upload shim is moved
log('[Refresh]');
},
StateChanged: function(up) {
// Called when the state of the queue is changed
log('[StateChanged]', up.state == plupload.STARTED ? "STARTED": "STOPPED");
},
QueueChanged: function(up) {
// Called when the files in queue are changed by adding/removing files
log('[QueueChanged]');
},
UploadProgress: function(up, file) {
// Called while a file is being uploaded
log('[UploadProgress]', 'File:', file, "Total:", up.total);
},
FilesAdded: function(up, files) {
// Callced when files are added to queue
log('[FilesAdded]');
plupload.each(files, function(file) {
log(' File:', file);
});
},
FilesRemoved: function(up, files) {
// Called when files where removed from queue
log('[FilesRemoved]');
plupload.each(files, function(file) {
log(' File:', file);
});
},
FileUploaded: function(up, file, info) {
// Called when a file has finished uploading
log('[FileUploaded] File:', file, "Info:", info);
var myuploader = $("#uploader").pluploadQueue();
myuploader.bind('QueueChanged', function(up, files){
remaining_files = myuploader.files.length;
alert('All Files uploaded!');
});
$.ajax({
type : "POST",
url : baseurl + 'admin/pages/reload/' + pageID,
success: function(data){
if(data) {
alert('File uploaded!');
} else {
alert('ajax error');
}
}
});
},
ChunkUploaded: function(up, file, info) {
// Called when a file chunk has finished uploading
log('[ChunkUploaded] File:', file, "Info:", info);
},
Error: function(up, args) {
// Called when a error has occured
// Handle file specific error and general error
if (args.file) {
log('[error]', args, "File:", args.file);
} else {
log('[error]', args);
}
}
}
});
var uploader = $("#uploader").pluploadQueue();
uploader.bind('QueueChanged', function(up, files)
{
files_remaining = uploader.files.length;
});
uploader.bind('FileUploaded', function(up, file, res)
{
files_remaining--;
if (files_remaining == 0)
{
alert('Complete!');
}
});
使用 UI。请上传你可以做...
$('#uploader').plupload('getUploader').total.queued
相关文章:
- 使用Tabris-js,并尝试使用cordova文件和文件传输插件
- 使用ajax获取通过FTP上传的文件的文件大小——试图防止ajax中断自身
- 找不到Intel XDK cordova文件api 1.3.3文件
- 拖动'n将树项目作为文件放到文件夹中
- 仅为文本文件筛选文件上载
- JavaScript 文件或文件夹查找和导入
- 查看由 java 脚本文件上传器选择的文件的文件内容
- 使用Javascript将多个文件下载为zip文件或文件夹
- JavaScript文件的文件权限
- AJAX/JS/PHP:如何替换发送到PHP文件的文件中的文本,并传递成功属性
- 如何使用javascript创建新的文件夹/文件
- 已从'上传文件;文件'img字段中未显示类型输入字段
- 应用程序脚本-自动从谷歌驱动器删除超过3天的文件-获取文件列表
- 输入类型文件将文件路径添加到范围
- php文件上传返回文件和文件路径的有效性
- 文件选择/文件API-将文件发送到嵌入式PDFObject
- 如何使用PHP从我自己的网站上的Google Drive获取文件和文件夹列表
- 如何将Javascript文件(.js文件)放在web服务器中
- 如何将 JavaScript 文件(.js 文件)添加到 C# 项目并从 C# 代码调用 JavaScript 方法
- 如何将 Base64 文件转换为 javascript 中的实际文件/原始文件并将其下载到客户端