问题描述:我在jsp页面上调用plupload时,先看到那段“您的浏览器。。。”,上传界面要等几十秒后才会出现,在jsp页面上单独测试该控件时,会在页面上直接转成plupload上传界面,但是当我把该控件应用到实际项目中,就会出现上述问题,由于生产环境中,需要这个上传控件放在一个需要暂时隐藏的div中,所以我不能直接使用$(function(){})直接加载,否则会报错
如果还有什么需要了解的,麻烦说一下,我被这个问题困扰几天了,还是没头绪。
div及对应的js如下:
<div id="pluploadDiv" style="display: none;">
<div style="width: 100%; margin: 0px auto">
<form id="formId" action="Submit.action" method="post">
<div id="uploader" style="display: none;">
<p>您的浏览器未安装 Flash, Silverlight, Gears, BrowserPlus 或者不支持 HTML5 .</p>
</div>
</form>
</div>
</div>
function uploadshow(){
$("#pluploadDiv").css('display', 'block');
$("#uploader").pluploadQueue({
// General settings
runtimes : 'gears,flash,silverlight,browserplus,html5,html4',
url : '/material/uploadMaterials',
max_file_size : '10mb',
unique_names : true,
chunk_size: '2mb',
// Specify what files to browse for
/* filters : {
//{title : "xls, xlsx文档", extensions : "xls,xlsx"}
mime_types : [ //只允许上传图片和zip文件
{ title : "Image files", extensions : "jpg,gif,png" }
],
max_file_size : '400kb', //最大只能上传400kb的文件
prevent_duplicates : true //不允许选取重复文件
}, */
filters : [
{title : "Image files", extensions : "jpg,gif,png"}
],
// Flash settings
flash_swf_url : '/plupload/js/plupload.flash.swf',
// Silverlight settings
silverlight_xap_url : '/plupload/js/plupload.silverlight.xap'
});
$("#uploader").css('display', 'block');
$('form').submit(function(e) {
var uploader = $('#uploader').pluploadQueue();
if (uploader.files.length > 0) {
// When all files are uploaded submit form
uploader.bind('StateChanged', function() {
if (uploader.files.length === (uploader.total.uploaded + uploader.total.failed)) {
$('form')[0].submit();
}
});
uploader.start();
} else {
alert('请先上传数据文件.');
}
return false;
});
}