Download 我想下载一个pdf文件,它存储在项目WebContent中的文件夹中

Download 我想下载一个pdf文件,它存储在项目WebContent中的文件夹中,download,struts2,stream,actionresult,http-parameters,Download,Struts2,Stream,Actionresult,Http Parameters,这是我的struts.xml文件 文件输入流 申请表格/pdf 附件filename=“${filename}” 1024 这是动作代码,文件的对象得到了null 公共字符串getPdf()引发异常 { 会话ss=HibernateUtils.getSess(); 事务t=ss.beginTransaction(); HttpSession HttpSession=request.getSession(); 字符串path2=request.getParameter(“path1”); Se

这是我的
struts.xml
文件


文件输入流
申请表格/pdf
附件filename=“${filename}”
1024
这是动作代码,
文件
的对象得到了
null

公共字符串getPdf()引发异常
{
会话ss=HibernateUtils.getSess();
事务t=ss.beginTransaction();
HttpSession HttpSession=request.getSession();
字符串path2=request.getParameter(“path1”);
ServletContext=ServletActionContext.getServletContext();
//字符串path3=servletContext.getRealPath(路径2);
System.out.println(“文件的相对路径为:“+path2”);
尝试
{             
File fileToDownload=新文件(路径2);
fileInputStream=新的fileInputStream(fileToDownload);
}         
捕获(例外e)
{
如果(t!=null)
{
t、 回滚();
e、 printStackTrace();
}
}
最后
{
ss.close();
}         
返回“成功”;
}
我已将要下载的文件存储在web content文件夹中,并已将其路径存储在数据库中。

问题

stringpath2=request.getParameter(“path1”);
如果缺少参数
path1
,此方法可能返回
null
。如果它不是
null
,那么它应该是应用程序可以访问的可读文件的有效路径

请阅读示例:。您可以使用代码跟踪输出

System.out.println(“要读取的总文件大小(字节):”
+getFileInputStream().available());

在结果配置中使用动态参数时,需要getter返回
结果。您应该提供
文件名的getter

我已经解决了这个问题。我已将文件的物理路径存储在数据库中。例如,如果您的项目路径为: D:/Workspace\u ABC/SampleProject/WebContent/D-Files/APJ.AbdulKalam.pdf
然后将此路径按原样存储在数据库表中。然后使用此路径下载文件。

我得到以下异常java.lang.IllegalArgumentException:在调用堆栈中找不到名为[InputStream]的java.io.InputStream。检查为此操作指定的标记。您应该有
getFileInputStream()
方法。@DiptiKadu如果答案有助于解决您的问题,您可能希望接受它。