struts2进行文件下载时,如何统计下载次数?

daichangfu 2010-11-02 12:18:39
//下载资料
public InputStream getDownloadFile(){
//获取相对路径
String path = datum.getDatumAddr();
int i = path.lastIndexOf("college");
String url = path.substring(i);
InputStream is = ServletActionContext.getServletContext().getResourceAsStream(url);
return is;
}
//文件下载
public String download(){
TDatum dt = dtbiz.findById(datum.getDatumId());
this.setDatum(dt);
this.setFileName(dt.getDatumName());
//下载次数加一
dt.setClick(dt.getClick()+1);
dtbiz.updateDatum(dt);
return "download";
}

<package name="datum" namespace="/datum" extends="struts-default">
<action name="datumAction" class="datumAction">
<result name="download" type="stream">
<param name="contentType">application/x-msdownload;charset=ISO8859-1</param>
<param name="contentDisposition">attachment;filename=${fileName}</param>
<param name="inputName">downloadFile</param>
</result>
</action>
</package>


当我下载一个文件时,按照上面的写法不行,当下载一个文件是上面的两个方法都会执行两边,所以下载一个文件的时候下载次数会加2,点击下载的时候加1,点击保存的时候又加1,如何判断这个文件时候真正下载了,或者如何判断它已经下载完成,这时候在加1,应该就好了。。。。。。谁帮帮我!!!
...全文
422 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Java_er 2013-04-15
  • 打赏
  • 举报
回复
是啊,这个问题不好确定啊?
chan10 2010-11-17
  • 打赏
  • 举报
回复
存数据库表中呢。
figo977 2010-11-17
  • 打赏
  • 举报
回复
把计数器放在application中!
liguangwen86 2010-11-16
  • 打赏
  • 举报
回复
怎么会执行两边下载一个附件
daichangfu 2010-11-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jyzhaowb 的回复:]
你把计数写到getDownloadFile()方法里看看。真正下载的时候是在这个方法里获取字节流的。
[/Quote]

我写到里面也不行啊,下载的时候这个getDownloadFile()也会执行两边,所以它同样会加2!!!
daichangfu 2010-11-02
  • 打赏
  • 举报
回复
顶一下......... 求解!!!
jyzhaowb 2010-11-02
  • 打赏
  • 举报
回复
你把计数写到getDownloadFile()方法里看看。真正下载的时候是在这个方法里获取字节流的。
yuyue618 2010-11-02
  • 打赏
  • 举报
回复
如何判断它已经下载完成, 如果要万无一失就得改中间件或者浏览器

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧