CodingStudying首页投稿(暂停使用,暂停投稿)

struts2进行文件的upload和download的问题

2016-05-18  本文已影响150人  7ack

今天在学习使用struts2进行文件的upload和download的时候遇到了许多问题。

总结如下:

2016-05-18 10:36:25,072 WARN [org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest] - Unable to parse request

org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. c:\upload0c89742b26a64ff1aebb19429fbf727000000002.tmp (拒绝访问。)

Caused by: java.io.FileNotFoundException: c:\upload0c89742b26a64ff1aebb19429fbf727000000002.tmp (拒绝访问。)

这个问题是由于我把上传的临时目录设在了c:\ 根目录 ,导致无法访问。

  1. 在c盘新建一个tmp文件夹
  2. 修改struts.xml
<!-- 上传过程中临时文件存放目录 --><constant name="struts.multipart.saveDir" value="C:\tmp\"></constant>
C:\JavaEE\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\upload\2016-05-18 11:02:12,859 ERROR [org.apache.struts2.dispatcher.Dispatcher] - Exception occurred during processing request: C:\JavaEE\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\upload\upload\FiLiLEiW9MGfa_vazxbtuobbnEth.jpg (系统找不到指定的路径。)java.io.FileNotFoundException: C:\JavaEE\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\upload\upload\FiLiLEiW9MGfa_vazxbtuobbnEth.jpg (系统找不到指定的路径。)

我用的是ServletActionContext.getServletContext().getRealPath()

方法获取绝对路径,只要在工程目录下新建upload文件夹就可解决。

由于参考了许多网上的例子,导致struts.xml 和action中方法名不匹配

错误如下:

Apache Tomcat/7.0.65 - Error reportCan not find a java.io.InputStream with the name [inputStream] in the invocation stack. Check the tag specified for this action.

修改struts.xml中

<param name="inputName">NAME</param>

NAME要和download.action中的getDownload()方法名一致。

上一篇 下一篇

猜你喜欢

热点阅读