今天用uploadify插件做文件上传,但是每次运行时都会出错,打开页面后按钮没法出现。
<!-- <body>部分 -->
<div id="fileQueue"></div>
<input id="file_upload" name="file_upload" type="file" multiple="true">
/* <script>部分 */
$(function(){
var setting = {
swf:"uploadify.swf",
uploader:"upload.do",
queueID:"fileQueue",
auto:false,
multi:true
};
try{
//出错语句
$("#file_upload").uploadify(setting);
}
catch(ex){
alert(ex.message);
}
});
alert的结果是:对象不支持此属性或方法。
因为浏览器是ie6,然后上网查了一下,说是ie6的浏览器是从缓存加载flash的balabala。。。
解决方法是在配置对象的swf(或者是uploader)属性后面加一个参数,就像下面这样:
setting = {
swf:"uploadify.swf?v=" + (new Date()).getTime(),
uploader:"upload.do?v=" + (new Date()).getTime()
};
然后还是不行。。。之后又查了许多资料,都是千篇一律的回答,而且基本上都是复制粘贴的。
当然最后问题还是解决了。问题出在这里:
<script type="text/javascript" src="jquery.uploadify.min.js"></script>
<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
把它们两句上下换一下就可以了。
其实想想还是很合理的,uploadify毕竟是基于jquery的插件,而且初始化时用到的uploadify方法明显是一个扩展方法,必须先包含jquery才能让uploadify去添加扩展方法。