今天终于解决了困惑我两天的问题,虽然导致这个错误的原因很弱,但打死我也没想到会是它引起的,整个事件大概为:
由于项目需要,就引用了swfupload这个由js+flash构成上载控件,可以支持多文件选择上传,这么长时间来,我一直围着它转了:
原来是选择的时候不立即上传,要一起上传,在研究了一段时间后,终于找到控件上传的startupload()方法了,这个问题也就解决了:在点击确认上传按钮的时候调用这个方法就可以了,当然在选择文件的事件中就得把这个方法去掉。
再就是通过它限制exe等特殊格式的文件上传,可是在这个控件中,只有支持上传什么文件的设定,可是对不支持什么没有这个属性,后来通过请教gyphie,解决了我这个问题,在fileQueue()方法中也就是选择文件完成后的第一个方法中取出文件的类型,通过js作判断,然后把限制的文件状态置为cancel就ok了,部分代码为:
function fileQueued(file)
{
if(file.type.toLowerCase() =='.exe')
{
this.cancelUpload(file.id,false);
alert("You can't upload exe files");
}
else
{
try
{
var progress = new FileProgress(file, this.customSettings.progressTarget);
progress.setStatus("Pending...");
progress.toggleCancel(true, this);
}
catch (ex)
{
this.debug(ex);
}
}
}
作完上述工作后,我以为对这部分可以休息一下了, 可就在昨天在ie6上测试系统的时候,竟然出现了browse issuess:swfuploadLoaded()未定义,还有一个是什么缺少)之类的,可是在ie7在一点问题也没有,终于在今天我找到原因了,竟然是因为在js文件里把中文注释在编译时形成了乱码,然后运行的时候也把正常的语句也放在注释里面去了,我把这些注释去掉后,程序在ie6中就可以顺利运行了,我两天的时间呀!!!
不过对于ie6为什么会把不在注释里面的代码在编译运行后放到注释里面实在是不明白!!希望那位高手指点一下。先行谢过。