温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何进行WebWork文件下载

发布时间:2022-01-11 16:05:54 来源:亿速云 阅读:165 作者:柒染 栏目:编程语言

这篇文章跟大家分析一下“如何进行WebWork文件下载”。内容详细易懂,对“如何进行WebWork文件下载”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“如何进行WebWork文件下载”的知识吧。

首先在一个ACTION中,如果判断有权限进行文件下载。

1、读出该下载文件,并生成一个流。这是WebWork文件下载的***步,文件名应当从请求的request中读出,或从用户的表中取出。

public String downLoadFile(String fileName)  {  try {  File input = new File("e:/engilish   literature.doc");  docStream = new FileInputStream(input);  contentDisposition = "filename=\"test.txt\"";  } catch (FileNotFoundException e) {  // TODO Auto-generated catch block  e.printStackTrace();  }    return "download";  }

2、将输出导向到一个特殊的RESULT中去。在WebWork文件下载中叫做Steam Result。

<action name="register" class=  "com.job2easy.web.user.RegisterAction">  <RESULT < SPAN>name="success" type="dispatcher">  <PARAM < SPAN>name="location">/home  /register-result.jsp  <RESULT < SPAN>name="input">  <PARAM < SPAN>name="location">/home/register.jsp    <RESULT < SPAN>name="download" type="stream">  <PARAM < SPAN>name="contentType">application  /x-msdownload <PARAM < SPAN>name="inputName">docStream <PARAM < SPAN>name="bufferSize">1024                <PARAM < SPAN>name="contentDisposition">$  {contentDisposition}  <INTERCEPTOR-REF < SPAN>name="params"/>  action>

3、WebWork文件下载参数。这中间有几个参数需要配置: 

◆contentType设成 application/x-msdownload 就可以。这样浏览器会保证弹出一个下载文件的对话框。

◆inputName 这个比较重要,这个名字是输入流的名称, 以后要steam result的实现类中为根据OGNL的表达式去查找的。 

◆contentDisposition 这个是下载之后,保存在用户端的文件名称。

◆${contentDisposition} 看一下代码。如果写成上述的方式,就有机会在ACTION中设置文件名。

4、另外一个参数:contentLength就是下载文件的大小,webwork的stream result似乎实现有问题,不能根据文件的大小动态进行设置,只能写死。    
这个参数的意义是告诉浏览下载的文件有多大,以便浏览器正确的显示进度条。如果这个功能很重要的话,可以重新写一个RESULT来实现。

关于如何进行WebWork文件下载就分享到这里啦,希望上述内容能够让大家有所提升。如果想要学习更多知识,请大家多多留意小编的更新。谢谢大家关注一下亿速云网站!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI