struts2下载多种类型的文件result里的<param name="contentType">textplain<param>如何设置?

struts2下载多种类型的文件result里的<param name="contentType">textplain<param>如何设置?,第1张

<param name="contentType">application/octet-stream</param>

要是想知道所有文件的类型,可以在tomcat安装目录下的:conf目录下的web.xml文件里边,往下翻,全部的文件类型都在里边!

分析下,如果你要下载某个文件需要向服务器发送请求,然后会在客户端与服务器之间建立一个HTTP连接,服务器接收到你的请求后,向response中写入你要下载的内容,并且由于安全策略的原因,浏览器客户端每次下载文件都会d出保存对话框。

也就是说,如果你要下载文件夹下的所有文件,你就需要对所有文件都发送请求,并且挨个选择保存位置。

如果要解决上面的问题,你可以按照下面的方式做。

1、建立一个servlet(structs2下应该是action吧),用来接收用户的请求。

2、根据用户的请求,将要下载的内容使用org.apache.tools.zip包下的类进行打包(JDK下也有相应的ZIP处理的类,不过它对于中文的文件名处理有问题)。

注:构造ZipOutputStream时使用HttpServletResponse.getOutputStream()构造。这样向ZipOutputStream中写入的内容,客户端就能直接获取。

以上,希望对你的帮助,可以的话,请采纳。

没有试过,不过我觉得并不是bufferSize越大越好,

你打断点试试,看看究竟哪一步耗费时间过大,

<param name="contentLength">${fileLength}</param>

这个是必须的吗?


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11703253.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存