首页 新闻 会员 周边

struts2怎么显示上传的文件呢??急急急、

0
悬赏园豆:30 [已解决问题] 解决于 2013-08-06 15:45

我用struts2上传文件到本地服务器。但是要怎么用超链接查看上传的文件呢

 

小弟在此谢谢大家了!

你好java的主页 你好java | 初学一级 | 园豆:174
提问于:2013-08-05 02:18
< >
分享
最佳答案
0

你怎么上传的?你上传的时候肯定要将上传文件的uri保存到数据库!让后读取数据库即可!

收获园豆:30
Beyond-bit | 老鸟四级 |园豆:2885 | 2013-08-05 08:51

是的。我把路径存到数据库了E:\Program Files\apache-tomcat-6.0.29\webapps\MajorResultSystem\upload\Javascript基础教程(文字版_代码可复制).pdf这个是pdf的

E:\Program Files\apache-tomcat-6.0.29\webapps\MajorResultSystem\upload\478892f1f5.jpg这个是图片的。把这个路径直接放到网址输入框是可以显示出来。但是我想通过超链接点击查看附件的时候他出不来,我是这么写的 <a href="${li[7]}">查看附件</a>。这个${li[7]}就是保存的路径。点击查看附件根本没反应。你看我那个超链接写错了还是哪里出错了呢?谢谢!!

你好java | 园豆:174 (初学一级) | 2013-08-05 14:40

@你好java: 如果你放到浏览器的网址输入框浏览器会默认的执行下载或者查看!

但是如果你通过项目,那你需要给这个超链接加一个action/servlet,通过流下载或者直接显示在浏览器!当然这两种都需要业务逻辑的支持!意思就是你还需要一个action或者servlet的方法来处理一下。

Beyond-bit | 园豆:2885 (老鸟四级) | 2013-08-05 14:54

@Beyond-bit: 谢谢。具体怎么做可以说 详细一点吗?有例子借鉴一下吗?

你好java | 园豆:174 (初学一级) | 2013-08-05 15:04

@你好java: 

这个网上google一大把,给你一个:http://jingyemingyue.iteye.com/blog/1172179

Beyond-bit | 园豆:2885 (老鸟四级) | 2013-08-05 15:20

@Beyond-bit: 好的。我再去试试。谢谢

你好java | 园豆:174 (初学一级) | 2013-08-05 18:46

@你好java: 你好!这段代码还是看不懂,更不用说改成action。我想直接在线打开的上传的文件、我怎么在google找不到你说的一大把呢?嘿嘿。我初学者。

  1.   
  2. //支持在线打开文件的一种方式  
  3. public void downLoad(String filePath, HttpServletResponse response, boolean isOnLine) throws Exception {  
  4. File f = new File(filePath);  
  5. if (!f.exists()) {  
  6. response.sendError(404"File not found!");  
  7. return;  
  8. }  
  9. BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));  
  10. byte[] buf = new byte[1024];  
  11. int len = 0;  
  12.   
  13. response.reset(); // 非常重要  
  14. if (isOnLine) { // 在线打开方式  
  15. URL u = new URL("file:///" + filePath);  
  16. response.setContentType(u.openConnection().getContentType());  
  17. response.setHeader("Content-Disposition""inline; filename=" + f.getName());  
  18. // 文件名应该编码成UTF-8  
  19. else { // 纯下载方式  
  20. response.setContentType("application/x-msdownload");  
  21. response.setHeader("Content-Disposition""attachment; filename=" + f.getName());  
  22. }  
  23. OutputStream out = response.getOutputStream();  
  24. while ((len = br.read(buf)) > 0)  
  25. out.write(buf, 0, len);  
  26. br.close();  
  27. out.close();  
  28. }             
你好java | 园豆:174 (初学一级) | 2013-08-05 21:24

@你好java: 

如果你要在线打开?那这个就又是一个不同的问题!

你要知道假设是一个word文档你要在线查看!直接显示在浏览器里面。一种就是通过获取word文档的文本内容,转换为html,一种就是通过flex来实现,不过这种难度大点,当然出来的效果就像是百度文库或者豆丁文库那样的!

我只能提供你思路了!具体做还是要你自己动手!

Beyond-bit | 园豆:2885 (老鸟四级) | 2013-08-06 08:37

@你好java: 

http://wenku.baidu.com/view/c6b5e5e6102de2bd9605888e.html

这篇文章你可以参考一下!

Beyond-bit | 园豆:2885 (老鸟四级) | 2013-08-06 08:37

@Beyond-bit: 谢谢你。忘了告诉你我昨晚做出来了。你说的用action给了我灵感。我自己写的。谢谢

你好java | 园豆:174 (初学一级) | 2013-08-06 15:44

@你好java:恭喜啊!客气了!

Beyond-bit | 园豆:2885 (老鸟四级) | 2013-08-06 15:54

@Beyond-bit: 很感谢你。对了。就是关于上传的,我是上传到本地tomcat的。但是我重新启动服务器之后那些上传的文件就消失了。除了改变上传的路径还有其他办法吗?

你好java | 园豆:174 (初学一级) | 2013-08-06 16:39

@你好java: 

重启?一般情况下不会清理文件目录的!你是不是清理了一下?

一种就是让他上传的时候copy一下上传的文件!这个struts2里面有具体实现方法拿过去用就可以了!

Beyond-bit | 园豆:2885 (老鸟四级) | 2013-08-06 16:45

@Beyond-bit: 我也觉得很奇怪,现在又不会了。我应该没清理吧。我也不知道在哪里清理,呵呵

你好java | 园豆:174 (初学一级) | 2013-08-06 21:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册