Chinaunix首页 | 论坛 | 博客
  • 博客访问: 677490
  • 博文数量: 194
  • 博客积分: 3831
  • 博客等级: 中校
  • 技术积分: 1843
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-28 13:24
文章分类

全部博文(194)

文章存档

2012年(41)

2011年(42)

2010年(45)

2009年(66)

分类: Java

2012-02-21 13:55:09

l  程序开发目的:

针对项目中文档路径访问,用户路径不一致的问题,进行文档访问页面的开发。以实现在系统文档管理中权限访问和文件下载的功能。

 

l  程序设计思路

程序实现为不同用户分配文档访问物理路径保存到数据库中,登录认证后,查看其所在物理路径下的文件结构,点击文档可下载;将指定文件下载访问路径到系统,可以过滤权限下载文件。

 

l  存在问题和解决办法

问题1:页面中的访问路径不能带有特殊字符

解决办法:将文件访问路径传到连接之前编码:filePath=encodeURIComponent(encodeURIComponent("${file.filePath}"));;然后跳转连接后,容器接受会自动解码一次,在servlet中获取路径时解码:String thepath = URLDecoder.decode(req.getParameter("file"), "utf-8");,将解码路径作为下载文件函数的参数找到文件的下载路径,成功带有特殊字符的文件。虽然不能显示出中文文件名称,但是用户上传文件的文件名称不会受到限制。

 

问题2:文件路径获取

解决办法:登录系统,会看到文件树形结构,选择下载文件右击属性,在地址URL中可以看到文件的连接地址,复制即可找到文件的下载路径,将文件下载路径放到p6系统对应的文档说明中。

 

问题3:文件下载的名称不能正常显示

解决办法:将对url中的参数解码过的路径再编码:new String( filenameWithoutPath.getBytes("GBK"), "ISO-8859-1" );后得到正常的中文文件名称。

 

问题4:为什么不将文件放到工程项目中

因为工程项目中的程序打包之后发布到weblogic中,以后用户上传的文件就不能包含在发布过程序包中了,文件就下载不到文件了。

 

l  最终处理结果: 

文件还是通过ftp上传到应用服务器的某个文件夹下,用户通过浏览器登录认证后,查看用户的文件树形结构,下载文件,或获取文件路径复制到系统的文件下。用户进入到系统,打开文档下载的路径,判断用户是否登录过系统,如果登录过系统,就直接下载;如果没有登录过系统,需要认证,再下载。并设置了30分钟的session有效时间。
阅读(2293) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~