我正在开发一个应用程序,人们可以将所需的文件从数据库中提到的位置下载到本地。我正在使用 struts 2 从服务器下载文件。我可以毫无例外地下载该文件,并且运行完美。
但是下载的文件具有我在 struts.xml 中指定的文件名,我希望它是正在下载的确切文件名。例如,如果原始文件名是 struts.pdf ,我将其下载为 download.pdf ,如何防止它并使用实际文件名下载文件
我的struts.xml配置如下,
<action name="download" class="action.DownloadAction">
<result name="success" type="stream">
<param name="contentType">application/octet-stream</param>
<param name="inputName">fileInputStream</param>
<param name="contentDisposition">attachment;filename="download.log"</param>
<param name="bufferSize">1024</param>
</result>
<result name="error">/live/useradminerror.jsp</result>
</action>
我忘了提到我正在使用 struts2-jquery 来开发 UI。请帮助我,因为我正处于项目的非常关键阶段。
如果我是正确的,您想要传递存储在数据库中的文件,如果是这种情况,您可以通过传递操作类中的所有这些参数来轻松完成此操作,例如
class MyFileDownloadAction extends ActionSupport{
private String fileName;
// getter and setter
public String fileDownload() throws exception{
// file download logic
fileName ="abc" // can set name dynamic from DB
}
}
<action name="download" class="action.DownloadAction">
<result name="success" type="stream">
<param name="contentType">application/octet-stream</param>
<param name="inputName">fileInputStream</param>
<param name="contentDisposition">attachment;filename="${filename}"</param>
<param name="bufferSize">1024</param>
</result>
<result name="error">/live/useradminerror.jsp</result>
</action>
您可以在 struts.xml 类中动态传递每个参数。希望这对您有帮助
这是您在 XML 中使用此文件名的方式
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)