SWFUpload+COS 上传组件+servelet 实现大附件上传
去年的时候整理过例子,源地址我的iteye bolg:
http://blog.****.net/misswuyang/article/details/5412375
这几天一直在整理一些以前的例子,并且优化了一下,也改写了一些swfupload 的源码,使其适应项目的开发。
新版本在线预览地址:http://220.178.14.19:8081/cosswfupload
1、需要的Servlet类(上传用)和jar包:
下面有下载:CosUploaderServlet.rar
2、Web.xml配置:
- <!--COS大附件上传限制500MBEGIN-->
- <servlet>
- <servlet-name>CosUploader</servlet-name>
- <servlet-class>com.ebiz.lv.web.servlet.uploader.CosUploaderServlet</servlet-class>
- <init-param>
- <param-name>fileSizeLimit</param-name>
- <param-value>500</param-value>
- </init-param>
- </servlet>
- <servlet-mapping>
- <servlet-name>CosUploader</servlet-name>
- <url-pattern>/CosUploader.do</url-pattern>
- </servlet-mapping>
- <!--COS大附件上传限制500MEND-->
3、页面:
- <%@pagelanguage="java"contentType="text/html;charset=utf-8"pageEncoding="utf-8"%>
- <%@includefile="../../commons/pages/taglibs.jsp"%>
- <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <htmlxmlns="http://www.w3.org/1999/xhtml">
- <head>
- <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
- <title>COSswfupload大附件上传</title>
- <linkhref="${ctx}/styles/style1.css"rel="stylesheet"type="text/css"/>
- <linkhref="${ctx}/commons/swfupload/style/default.css"rel="stylesheet"type="text/css"/>
- </head>
- <body>
- <divclass="wyTitle">COSswfupload大附件上传</div>
- <divclass="container">
- <divclass="mapWrap"><br/>
- <html-el:formaction="/Index.do">
- <html-el:hiddenproperty="method"value="save"/>
- <tablewidth="100%"border="0"align="left"cellpadding="1"cellspacing="1"class="datagrid">
- <tr>
- <tdnowrap="nowrap"class="title_item">文档地址:</td>
- <tdalign="left"><tablewidth="600"border="0"cellpadding="1"cellspacing="0">
- <tr>
- <tdwidth="14%"><spanid="spanButtonPlaceHolder"></span><imgtitle="添加小于100M的文件作为附件"alt="添加小于100M的文件作为附件"src="${ctx}/commons/swfupload/style/images/100M.jpg"/></td>
- <td><spanid="btnCancel"onclick="swfu.cancelQueue();"style="font-family:Verdana;color:#005590;cursor:pointer;">取消上传</span></td>
- </tr>
- <tr>
- <tdcolspan="2"><divclass=""id="divCreateElementsToForm"></div></td>
- </tr>
- <tr>
- <tdcolspan="2"><divclass=""id="fsUploadProgress"></div></td>
- </tr>
- </table></td>
- </tr>
- <tr>
- <tdnowrap="nowrap"class="title_item">使用说明:</td>
- <tdalign="left">1、可以上传多个附件<br/>
- 2、页面参数字段名称:file_name,file_path<br/>
- 3、后台可以通过:<br/>
- String[]file_name=request.getParameterValues("file_name");<br/>
- String[]file_path=request.getParameterValues("file_path");<br/>
- 获取文件路径和文件名称,然后存储到数据库中。</td>
- </tr>
- <tr>
- <tdnowrap="nowrap"colspan="2"><html-el:submitproperty="bgsubmit"value="提交"/>
- <inputtype="button"name="back"value="返回"onclick="history.back();"/></td>
- </tr>
- </table>
- </html-el:form>
- </div>
- </div>
- <divid="info">
- <div></div>
- </div>
- <scripttype="text/javascript"src="${ctx}/commons/scripts/jquery.js"></script>
- <scripttype="text/javascript"src="${ctx}/commons/swfupload/swfupload.min.js"></script>
- <scripttype="text/javascript"src="${ctx}/commons/swfupload/handlers.min.js"></script>
- <scripttype="text/javascript">//<![CDATA[
- varaddFileName="上传文档";
- if(""!="${oa.map.document_path}"){
- addFileName="重新上传";
- }
- varswfu;
- varsettings={
- ctx:"${ctx}",//路径
- entity_id:"${af.map.id}",//当前数据的id
- delete_url:"Cs.do",//ajax删除文件的url
- delete_method:"deleteFileForCosSwfupload",//ajax删除文件的method
- //upload_single_file:true,//是否上传单个文件,默认上传多个文件
- flash_url:"${ctx}/commons/swfupload/swfupload.swf",
- upload_url:"${ctx}/CosUploader.do",
- post_params:{"uploadTimer":newDate()},
- file_size_limit:"100MB",
- file_types:"*.*",
- file_types_description:"AllFiles",
- file_upload_limit:100,
- file_queue_limit:0,
- custom_settings:{
- progressTarget:"fsUploadProgress",
- cancelButtonId:"btnCancel",
- upload_successful:false
- },
- //Buttonsettings
- button_placeholder_id:"spanButtonPlaceHolder",
- button_text:'<spanclass="theFont">'+addFileName+'</span>',
- button_text_style:".theFont{font-size:12px;color:#005590;}",
- button_width:52,
- button_cursor:-2,
- button_height:22,
- //Theeventhandlerfunctionsaredefinedinhandlers.js
- file_queued_handler:fileQueued,
- file_queue_error_handler:fileQueueError,
- file_dialog_complete_handler:fileDialogComplete,
- upload_start_handler:uploadStart,
- upload_progress_handler:uploadProgress,
- upload_error_handler:uploadError,
- upload_success_handler:uploadSuccess,
- upload_complete_handler:uploadComplete,
- queue_complete_handler:queueComplete//Queuepluginevent
- };
- swfu=newSWFUpload(settings);
- //]]></script>
- <%@includefile="../../_public_page.jsp"%>
- </body>
- </html>
其中需要的swfupload.min 和 handlers.min.js ,下面有下载:swfupload.rar
4、效果图:
选择文件上传:可以选多个文件
上传完成后:
点击提交后: