Swfupload官方的描述是:Swfupload是一个包含有flash上传功能的javascript类库,它给我们带来多文件选择、上传进度条和客户文件大小检查等便利。
首先,要了解Swfupload,第一反应是上谷歌查查介绍。当然也可以搜出他的官方网站,就是http://www.swfupload.org了。
要下载它的Release包和Demo可以访问http://code.google.com/p/swfupload/,两个zip包很小,不到一分钟就check下来。
?
我下载的Swfupload v2.2.0.1。
1.解压缩samples包,进入demos/simpledemo文件夹,这里就是swfupload最简单的入门例子了。
2.我用的是JSP,所以可以在myeclipse中新建一个web工程,将demos/simpledemo文件夹中js和images2个文件夹和demos下的css文件夹拷贝到WebRoot下面,然后打开simpledemo中的index.php,将内容拷贝到工程的index.jsp中,并去掉<?php ?>的内容部分。
3.接下来就要稍微修改Index.jsp中的内容,添改如下:
?
?
- <link?href="css/default.css"?mce_href="css/default.css"?rel="stylesheet"?type="text/css"?/>??
- <mce:script?type="text/javascript"?src="js/swfupload.js"?mce_src="js/swfupload.js"></mce:script>??
- <mce:script?type="text/javascript"?src="js/swfupload.queue.js"?mce_src="js/swfupload.queue.js"></mce:script>??
- <mce:script?type="text/javascript"?src="js/fileprogress.js"?mce_src="js/fileprogress.js"></mce:script>??
- <mce:script?type="text/javascript"?src="js/handlers.js"?mce_src="js/handlers.js"></mce:script>??
- ??
- upload_url:?"http://localhost:8080/SwfuploadDemo/upload",??
- post_params:?{"SESSIONID"?:?"<%=session.getId()%>"},??
?
?
?
4.然后要编写一个简单的servlet来处理文件上传,要用到commons-fileupload.jar,commons-io.jar
?
- public?void?doPost(HttpServletRequest?request,?HttpServletResponse?response)??
- ????????????throws?ServletException,?IOException?{??
- ????????HttpSession?session?=?request.getSession();??
- ????session.setAttribute("SESSIONID",session.getId());??
- ????FileItemFactory?factory?=?new?DiskFileItemFactory();??
- ????ServletFileUpload?upload?=?new?ServletFileUpload(factory);??
- ????try?{??
- ????????List<FileItem>?items?=?upload.parseRequest(request);??
- ????????Iterator<FileItem>?itr?=?items.iterator();??
- ????????while(itr.hasNext()){??
- ?????????????????FileItem?item=(FileItem)itr.next();??
- ??????????????????????String?fileName=item.getName();??
- ????????????if(fileName!=null){??
- ????????????????File?fullFile=new?File(item.getName());??
- ????????????????File?savedFile=new?File("d:/uploads",fullFile.getName());??
- ????????????????item.write(savedFile);??
- ????????????}??
- ????????}??
- ????}?catch?(FileUploadException?e)?{??
- ????????e.printStackTrace();??
- ????}?catch?(Exception?e)?{??
- ????????e.printStackTrace();??
- ????}??
- }??
?
?
?
5.最后,部署到tomcat,运行,看看酷酷的上传效果吧!
?
?