swfupload当file_upload_limit初始化需要为0时解决方案
比如有这样的需求:文件上传完之后删除,那么上传文件个数限制也需要做相应的改变,可以通过修改file_upload_limit实现,在删除时file_upload_limit+1即可。
那么如果是这样的需求呢:在文件列表编辑的时候,默认的文件数已经达到上传文件个数限制时,如何解决?有人说了,初始化file_upload_limit值为0即可,然后在删除现有的文件时file_upload_limit+1就行了,我当时也是这么想的,但是swfupload默认file_upload_limit为0时表示个数无限制,纠结了吧,呵呵,不要着急,它还提供的有successful_uploads,官方介绍的是这样处理:
var stats = this.getStats();
stats.successful_uploads--;
this.setStats(stats);
我想你一看就能明白,跟刚才file_upload_limit的实现有异曲同工之妙,只不过它修改的是上传成功的个数。
那在实际应用中该如何做呢,
Code:
var initImageCount = 3; // 这是你初始化时现有的文件个数,假如你允许的文件个数也为3
function fileDialogStart() { // file_dialog_start_handler执行方法
var stats = swfu.getStats();
stats.successful_uploads += initImageCount;
stats.successful_uploads -= removeCount;
swfu.setStats(stats);
initImageCount = 0; // 清0,你懂得
removeCount = 0; // 清0
}
var swfu = new SWFUpload({
...
file_dialog_start_handler: fileDialogStart,
...
});
var removeCount = 0; // 这就是你删除已上传文件的计数
function removeImage() {
...
removeCount++;
...
}