struts2進(jìn)行文件的upload和download的問題

今天在學(xué)習(xí)使用struts2進(jìn)行文件的upload和download的時候遇到了許多問題。

總結(jié)如下:

  • 文件上傳臨時的tmp文件拒絕訪問,錯誤如下:
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 (拒絕訪問。)

這個問題是由于我把上傳的臨時目錄設(shè)在了c:\ 根目錄 ,導(dǎo)致無法訪問。

  • 解決辦法:
  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 (系統(tǒng)找不到指定的路徑。)java.io.FileNotFoundException: C:\JavaEE\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\upload\upload\FiLiLEiW9MGfa_vazxbtuobbnEth.jpg (系統(tǒng)找不到指定的路徑。)
  • 解決辦法:

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

方法獲取絕對路徑,只要在工程目錄下新建upload文件夾就可解決。

  • inputName 不匹配問題

由于參考了許多網(wǎng)上的例子,導(dǎo)致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()方法名一致。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概述 Struts就是基于mvc模式的框架!(struts其實(shí)也是servlet封裝,提高開發(fā)效率!) Strut...
    奮斗的老王閱讀 3,164評論 0 51
  • 標(biāo)簽 如果要配置的標(biāo)簽,那么必須要先配置標(biāo)簽,代表的包的概念。 包含的屬性 name包的名稱,要求是唯一的,管理a...
    偷偷得路過閱讀 1,514評論 0 0
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,625評論 18 399
  • 1.什么是框架 什么是框架,框架從何而來,為什么使用框架? 1).框架(framework)——半成品: 1.是一...
    賈里閱讀 3,502評論 0 0
  • 文/only單 最近一改往常變得匆忙起來。 并不是忙于什么事或者任務(wù),而單單是最近生活的節(jié)奏快了起來??赡苁怯捎诤?..
    only單閱讀 619評論 2 1

友情鏈接更多精彩內(nèi)容