日期:2014-05-16 浏览次数:20385 次
??? 今天在做项目时遇到文件上传的问题,本想用SWFUpload这个东东来实现的,没想到在上传无法成功,折腾了一天也无果。
??? 上网查,有的说是flash10的缘故,不过我也不能因为那东西就不做了啊,再说,如果浏览器不支持flash的话就不能上传,那也太次了……
??? 于是乎,我又在网上搜寻着上传的插件,果然,被我发现了一个感觉不错的东西: Plupload。官方网站为http://www.plupload.com/? 网站上的例子很实用。而且支持令人头痛的IE6,真是爽撒~
?? 效果附加在附件中。
? ? 另外遇到了加载外部页面的问题,因为用extjs 的默认加载是不支持的,于是用到了iframe,见代码:
var win = new Ext.Window({ title:'文件上传', iconCls:'db-icn-upload-local', width:700, height:348, layout:'fit', //resizable:false, style:'margin:0;padding:0;', items:[{ title:'', header:false, html:'<iframe id="frame" name="frame" src="paper/upload.jsp" width=100% height=100%/>', boder:false }] }).show();
?upload.jsp代码为:
<%@ page language="java" contentType="text/html;charset=utf-8"%> <html> <head> <!-- Load Queue widget CSS and jQuery --> <link rel="stylesheet" type="text/css" href="../../plupload/js/jquery.plupload.queue/css/jquery.plupload.queue.css" /> <script type="text/javascript" src="../../plupload/js/browserplus-min.js"></script> <script type="text/javascript" src="../../js/jquery.js"></script> <script type="text/javascript" src="../../plupload/js/plupload.full.js"></script> <script type="text/javascript" src="../../plupload/js/jquery.plupload.queue/jquery.plupload.queue.js"></script> <script type="text/javascript"> $(function() { var result = true; var failCount = 0; $("#uploader").pluploadQueue({ // General settings runtimes : 'html5,gears,flash,silverlight,browserplus',//支持环境,优先级为从左到右 url : 'uploadFiles',//上传地址 max_file_size : '100000mb',//设定上传文件最大尺寸 //chunk_size : '1mb', unique_names : true, // Flash settings flash_swf_url : '../../plupload/js/plupload.flash.swf', // Silverlight settings silverlight_xap_url : '../../plupload/js/plupload.silverlight.xap', // Post init events, bound after the internal events init : { /*StateChanged: function(up) { alert("状态更新"); },*/ UploadComplete: function(up,file){ if(result){ alert("上传成功"); }else{ alert(failCount+"个文件上传失败"); } }, Error: function(up, args) { result = false; failCount++; } } }); // Client side form validation $('form').submit(function(e) { var uploader = $('#uploader').pluploadQueue(); uploader.bind('Refresh', function() { alert("sdfdfsdf"); }); // Files in queue upload them first 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; }); }); </script> </head> <body> <form action="uploadFiles"> <div id="uploader"> <p>您的浏览器不支持Flash, Silverlight, Gears, BrowserPlus 或者 HTML5 ,无法上传.</p> </div> </form> </body> </html>?