精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (10)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-15
最后修改:2009-12-01
AlanXUpload是一个通过flash技术提供批量上传文件的web批量上传组件,用户可以自定义上传的文件类型、大小、数量,上传的地址,上传的处理方式,自定义上传UI,接受服务器发送的反馈信息,并显示所有文件及单个文件的上传进度。 Demo,可直接测试: 详细信息,访问: http://www.alanx.cn 以上传速度100kb/s,上传87个总大小为869的文件为例,AlanXUpload表现稳定: 下载源代码,请到www.alanx.cn 公司Quality Leader需要在公司的FMS系统上共享1000多个文档,在下专门为她定制了一个批量上传的组件,替代老的FMS里面单文件选择上次的方法。 开发的时候,我发现flash一次上传的文件大小要在100M以内,文件总和大概在200到500左右,因为文件的数量是由文件名的长短决定的。 老的FMS 采用的是Ajax框架,EXT 2.2,不果现在的EXT已经收费了,所以我也没兴趣了。对于flex也没太大的兴趣,因为其高级客户端组件如报表以及服务器组件等都是昂贵的,公司又不 允许安装盗版软件(自从上次微软和Adobe的人来公司查过之后,我卸载了机器上所有的盗版软件),所以我目前也没打算做过多研究。 Flash大学的时候玩过,这次从新拿来练练手。 另外,通过flash上传的文件如果后台用Struts1.2的ActionForm来接收是有问题,因为flash上传的方式跟Stusts表单 提交的结构不同,这时候我想到了直接从request里面取出来,在放到common-upload组件对象中区,发现总是异常,但用纯Servlet的 request是没问题的,研究了一下,发现Struts的request根Servlet中的request有写不一样,虽然大家都是被包装过的(装饰 模式),但Sturts有可能改变了request的结构。解决的办法是,在Sturst配置文件中不要给该Action配置Form,这样又不会有问题 了,所有对象直接从request中取。 [url=http://www.alanx.cn/wp-content/uploads/2009/10/2.jpg][/url] Struts1.2 接收文件代码 /** * * @param form * @param response */ public ActionForward fileBatchUpload(ActionMapping mapping, ActionForm form, response.setCharacterEncoding(”UTF-8″); FMSSession session = BaseSession.getInstance().getBean( FMSStaffVO fmsStaffVO = getStaffVO(request); String fileName = null; String realPath = null; FMSFile fmsFile = null; FileItemFactory factory = new DiskFileItemFactory(); upload.setHeaderEncoding(”UTF-8″); items = upload.parseRequest(request); FileItem item = (FileItem) items.get(i); path = new String(item.getString().getBytes(”iso8859-1″),”UTF-8″); System.out.println(”—————————————————-”); System.out.println(”item.getName()=”+ item.getName()); System.out.println(”item.isInMemory()=”+item.isInMemory()); System.out.println(”—————————————————-”); pw = response.getWriter(); pw.println(”路径不正确”); pw.close(); } FileItem item = (FileItem) items.get(i); fileName = item.getName(); File folder = new File(realPath); System.out.println(folder); File file = new File(realPath+”\\” + fileName); BufferedOutputStream bos = new BufferedOutputStream(os); //copy file //authority fmsFile.setName(fileName); fmsFile.setSize(fileSize+”"); fmsFile.setCreateDate(session.getDate()); fmsFile.setModifyDate(fmsFile.getCreateDate()); FMSFileAccess da = new FMSFileAccess(); da.setAccessUnitId(fmsStaffVO.getStaffId()+”"); auths.add(”5″); da.setFile(fmsFile); da.setAccessUnitCategory(FMSFileAccess.ACCESS_UNIT_CATEGORY_ROLE); auths = new HashSet(); da.setPurviewSet(auths); das.add(da); /*List fMSDocuments = new ArrayList(); session.save(fMSDocuments);*/ bis.close(); pw.flush(); }else{ pw.flush(); return null; } } pw.flush(); } catch (Exception e) { pw.println(”文件上传失败”); pw.close(); //删除文件 File file = new File(realPath+”\\”+fileName); file.delete(); } session.deleteFmsDocumentByDocument(fmsFile, fmsStaffVO.getStaffId()+”"); } return null; } flash文件上传组件附件: FileUpload 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-11-15
代码就不能格式化一下吗,看着就烦
|
|
返回顶楼 | |
发表时间:2009-11-15
kjj 写道 代码就不能格式化一下吗,看着就烦
第一次发帖,直接从我的博客中copy过来的,格式不知道咋弄,可直接下载附件,里面有源代码 |
|
返回顶楼 | |
发表时间:2009-11-15
xiaoqulai 写道 kjj 写道 代码就不能格式化一下吗,看着就烦
第一次发帖,直接从我的博客中copy过来的,格式不知道咋弄,可直接下载附件,里面有源代码 使用BBCode Code标签,像Java源码 :[ code="java"][/code ] |
|
返回顶楼 | |
发表时间:2009-11-16
这截图是Flash啊?
|
|
返回顶楼 | |
发表时间:2009-11-16
neeke 写道 这截图是Flash啊?
是啊,我这个是flash做的组建,后台接收是java |
|
返回顶楼 | |
发表时间:2009-11-16
曾经de迷茫 写道 xiaoqulai 写道 kjj 写道 代码就不能格式化一下吗,看着就烦
第一次发帖,直接从我的博客中copy过来的,格式不知道咋弄,可直接下载附件,里面有源代码 使用BBCode Code标签,像Java源码 :[ code="java"][/code ] 谢谢指点,为什么的我的博客上面没有这个BBCode code,需要什么插件吗? |
|
返回顶楼 | |
发表时间:2009-11-16
曾经de迷茫 写道 xiaoqulai 写道 kjj 写道 代码就不能格式化一下吗,看着就烦
第一次发帖,直接从我的博客中copy过来的,格式不知道咋弄,可直接下载附件,里面有源代码 使用BBCode Code标签,像Java源码 :[ code="java"][/code ] 不行的,用BBCode之后,我的图片都没了,而且代码里面多了很多<B>,看起来也很麻烦 |
|
返回顶楼 | |
发表时间:2009-11-16
xiaoqulai 写道 曾经de迷茫 写道 xiaoqulai 写道 kjj 写道 代码就不能格式化一下吗,看着就烦
第一次发帖,直接从我的博客中copy过来的,格式不知道咋弄,可直接下载附件,里面有源代码 使用BBCode Code标签,像Java源码 :[ code="java"][/code ] 谢谢指点,为什么的我的博客上面没有这个BBCode code,需要什么插件吗? 狂汗.... |
|
返回顶楼 | |
发表时间:2009-11-16
晨星★~雨泪 写道 xiaoqulai 写道 曾经de迷茫 写道 xiaoqulai 写道 kjj 写道 代码就不能格式化一下吗,看着就烦
第一次发帖,直接从我的博客中copy过来的,格式不知道咋弄,可直接下载附件,里面有源代码 使用BBCode Code标签,像Java源码 :[ code="java"][/code ] 谢谢指点,为什么的我的博客上面没有这个BBCode code,需要什么插件吗? 狂汗.... 瀑布汗,你发贴的时候没有看到"BBCode编辑器"吗?你点"code"按钮。再或者你直接用可视化编辑器。 |
|
返回顶楼 | |