




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
文件上传与下载一、 文件上传与下载所需要文件(*.js,*.css,*.swf)1.存放位置总共7个相关文件;2.引入包的位置跟平时引入js一样,这儿需要引入5个相关文件。link href=/swfupload/default.css rel=stylesheet type=text/css /script type=text/javascript src=/swfupload/swfupload.jsscript type=text/javascript src=/swfupload/swfupload.queue.jsscript type=text/javascript src=/swfupload/fileprogress.jsscript type=text/javascript src=/swfupload/handlers.js二、 设置需要上传的数据库字段(jsp页面)1. 比如在内容管理下,有基础学习模块,其中有一个字段是accessory现在进行一下设置:a. name=webContent.accessory,这是你要上传数据库字段。b. readonly=readonly是为了设置文件上传成功后,该文本框将不能被修改。c.校验数据库字段如果该字段可以为空,校验如下,当然要在国际化资源文件和相应的ActionBean中配置相关信息。 如果不为空,再加上一句*三、在JSP设置swf,即上传功能/校验 文件上传 大小、格式 、进度条var swfu = new SWFUpload( upload_url : /upload.action?moduleName=ccm,file_size_limit : 5 MB,file_types : *.doc;*.docx;*.xlx;*.txt;*.xlsx;,file_types_description : *.doc;*.docx;*.xlx;*.txt;*.xlsx;,file_upload_limit : 1,custom_settings : uploadDom : webContent.accessory,button_placeholder_id : spanButtonPlaceHolder);/删除文件function deleteFile(filePath, fileProgressID) jQuery.ajax( type : post,url : /upload.action,data : deleteFile=&Filename= + filePath,success : function(result) if (result != ) jQuery(# + fileProgressID).toggle(1000);jQuery(#up).val();jQuery(#divStatus).remove();var stats = swfu.getStats();stats.successful_uploads-;swfu.setStats(stats););1.文件上传路径upload_url : /upload.action?moduleName=ccm,这样他会去找相应的ActionBean。2.文件上传大小file_size_limit : 5 MB,这需要你的情况自己设定,最大不能超过500M。3.文件上传的类型file_types : *.doc;*.docx;*.xlx;*.txt;*.xlsx;,当然也可以上传图片。这根据情况而定。4.上传文件的个数file_upload_limit : 1,目前只能上传单个文件。5.设置数据库字段uploadDom : webContent.accessory,文件上传成功后就将保存路径保存在数据库中。三、 自己对于的ActionBean中处理1. 修改上传文件时,先要删除原有的文件在saveOrupdate方法中/* 修改 */if (StringUtils.isNotEmpty(baseContent.getPreAccessory() if (!(baseContent.getPreAccessory().equals(baseContent.getAccessory() File file = new File(context.getServletContext().getRealPath(baseContent.getPreAccessory();/ 删掉原有的附件file.delete();2. 当删除单条数据后,也删除相应的附件3. /*4. * 单条删除成功之后将相应的附件删除5. * 6. * throws DaoException7. * throws ServiceException8. * throws Exception9. */10. public void afterDelete() throws DaoException, ServiceException, Exception 11. if (null != baseContent) 12. if (StringUtils.isNotEmpty(baseContent.getAccessory() 13. File file = new File(context.getServletContext().getRealPath(baseContent.getAccessory();14. file.delete();15. 16. 17. 3.当批量删除数据后,也要批量删除相应的附件2. /*3. * 批量删除成功之后将相应的附件删除4. * 5. * throws DaoException6. * throws ServiceException7. * throws Exception8. */9. public void afterDeleteAll() throws DaoException, ServiceException, Exception 10. / 删除所有视频附件11. if (ListUtils.isNotEmpty(assessoryNames) 12. for (String str : assessoryNames) 13. File file = new File(context.getServletContext().getRealPath(str);14. file.delete();15. 16. 17. 四、 公用的ActionBean(UploadActionBean)的设置在这里面,大家可以不用设置任何数据,只是作为了解。1. 上传文件的方法2. /*3. * 上传文件4. * 5. * return6. */7. DefaultHandler8. public Resolution upload() 9. if (filedata != null) 10. try 11. String realPath = getSavePath() + / + moduleName;12. File directory = new File(realPath);13. / 创建目录14. if (!directory.exists() 15. directory.mkdir();16. 17. / 附件上传成功18. filedata.save(new File(realPath + / + filedata.getFileName();19. / 得到文件内容的hash码20. hashName = this.getFileMD5(realPath + / + filedata.getFileName();21. File file = new File(realPath + / + filedata.getFileName();22. String saveName = hashName + filedata.getFileName();23. / 将没有转码的文件删除掉24. File fileNew = new File(realPath + / + saveName);25. if (fileNew.exists() 26. file.delete();27. 28. if (file.exists() 29. file.renameTo(new File(realPath + / + saveName);30. 31. / 返回附件保存路径32. this.getContext().getRequest().setAttribute(filePath, /upload/ + moduleName + / + saveName);33. return new ForwardResolution(swfupload/success.jsp);34. catch (IOException e) 35. logger.error(Error while writing file : + filedata.getFileName();36. 37. 38. return null;39. 40.2.删除文件的方法/* * 删除文件 * */public Resolution deleteFile() try if (StringUtils.isNotEmpty(filename) String realPath = getSavePath(filename);File file = new File(realPath);if (file.exists() if (file.delete() return new StreamingResolution(AjaxType.SENDUTF8, Y);return new StreamingResolution(AjaxType.SENDUTF8, ); catch (Exception e) return new StreamingResolution(AjaxType.SENDUTF8, getStripesError(ajax.error);五、 文件的下载1. 在相应的下载页面(show.jsp)$actionBean.webContent.accessory2.其中需要将数据库保存的路径传到UploadActionBean中3.截取文件名称,用于在页面显示对应的JS/用于截取附件名称,使上传文件名称和下载一样jQuery.fn.limit=function() var self = $(divlimit); self.each(function() var objString = $(this).text(); var objLength = $(this).text().length; var num = $(this).attr(limit); if(objLength num) $(this).attr(title,objString); objString = $(this).text(objString.substring(num); ) $(function() $(document.body).limit(); ) 4.UploadactionBean中相应的方法/* * 下载文件前,得到文件的名称及相应的路径 */public InputStream buildDownFile() try if(StringUtils.isNotEmpty(this.getAccessory()/ 找到根路径String filePath = getContext().getServletContext().getRealPath()+this.getAccessory();return new FileInputStream(filePath); catch (FileNotFoundException e) getContext().getValidationErrors().addGlobalError(new SimpleError(没有找到相应的文件);return null;/* * 文件下载 * * throws UnsupportedEncodingException */public Resolution download() throws UnsupportedEncodingException return new StreamingResolution(application/octet-stream, buildDownFile().setFilename(this.getStr(accessory.substring(accessory.lastIndexOf(/)+33);六、 相关界面原型1. 未
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论