我对Uploadify有一个简单的问题。在上传开始之前,我想检查一些标准,这是真的 - 我想中止上传。下面的代码无法正常工作,即使我调用uploadifyCancel
,它也会上传文件。如何解决?
$("#fileuploader").uploadify({
uploader: '/Scripts/uploadify.swf',
script: '/Upload/'
fileDataName: 'file',
buttonText:'upload',
multi: false,
sizeLimit: 369878,
simUploadLimit: 1,
cancelImg: '/Images/uploadify-cancel.png',
auto: true,
onOpen:function(event,ID,fileObj) {
var found = $('#uploaded-files-table tr[some-attr="1"]');
if($(found).length == 0){
$('#list').attr('disabled','disabled');
} else {
$("#fileuploader").uploadifyClearQueue();
$("#fileuploader").uploadifyCancel(ID);
}
}
});
答案 0 :(得分:1)
我不确定你使用哪个版本但是我可以在下面进行。 我需要根据文件扩展名上传文件
'onAddQueueItem':function(file, e) {
if (!(/\.(gif|jpeg|png|pdf)$/i).test(file.name)) {
$($this).data("uploadifive").removeQueueItem(file, 0, 10);
file.skip = true; //This skip property stop uploading file
}
}
答案 1 :(得分:0)
$("#fileuploader").uploadifyCancel(ID);
代码正常运行。如果您添加onComplete和onAllComplete,则这些事件中的任何一个都不会被命中,表示取消事件有效。
问题是uploadify固有地在onOpen事件发生之前开始上传文件。在这里查看,看起来他们在onOpen http://www.uploadify.com/forums/discussion/5611/uploadifysettings-not-posting-new-script-data/p1
上修改脚本数据时遇到了同样的问题如果$("#fileuploader").uploadifyCancel(ID);
和$("#fileuploader").uploadifyClearQueue();
的文件大小超过600-700KB,我确实取消了一些文件。我认为这必须处理上传的速度。因为这些是较大的文件,所以取消事件在上传完成之前有时间触发。在实时服务器上,而不是在本地主机上,上传时间会更慢,因此可能没有及时取消事件的问题。我不会冒险。
可能的解决方法是在页面上包含一个启动上传的辅助按钮,并从uploadify init中删除auto: 'true'
。这样,您可以在上传开始之前检查所需的任何值。
答案 2 :(得分:0)
使用uploadify的onSelect
进行检查。
你可以这样做:
$("#fileuploader").uploadify({
uploader: '/Scripts/uploadify.swf',
script: '/Upload/'
fileDataName: 'file',
buttonText:'upload',
multi: false,
sizeLimit: 369878,
simUploadLimit: 1,
cancelImg: '/Images/uploadify-cancel.png',
auto: true,
'onSelect': function (file) {
if(file.type==".zip")
{//do something
}
else
{
//cancel upload
}