struts2文件上传(2)
單文件上傳:
??? 在動作類action中,聲明相關屬性
-
????在動作類action中,要聲明與頁面中表單name屬性同名的屬性,同名的屬性的類型是File類型
-
????在動作類action中,要聲明[同名的屬性]ContentType,類型是String類型。
-
????在動作類action中,要聲明[同名的屬性]FileName,類型是String類型。
-
??? 給所有屬性提供get,set方法,
2. ? ?? 在業務方法中處理文件上傳:
-
????獲取要上傳文件的路徑,保存的位置
-
????在目標文件夾內,創建一個與上傳文件同名的文件
-
??? 通過FileUtils工具類提供的copyFile()方法,將臨時文件內容拷貝到目標文件夾下的同名 的文件
3. ?? ? 設置上傳文件的總大小
-
??? 在struts.xml中,<constant name="struts.multipart.maxSize" value="2097152000"></constant>
-
??? 設置上傳文件的大小、類型、和擴展名
????????<!-- 配置攔截器的參數,這里是文件上傳攔截器 -->
????????<interceptor-ref name="defaultStack">
????????<!-- * 配置上傳文件的大小
?? ????????? *struts.xml文件中配置的是上傳文件的總大小
?????????? ? *這里配置的是上傳文件的單個大小
?????????? -->
????????<param name="fileUpload.maximumSize">10000000</param>
????????<!-- 配置上傳文件允許的類型,如果配置多個值,用逗號隔開 -->
????????<param name="fileUpload.allowedTypes">text/plain</param>
????????<!-- 配置上傳文件的擴展名 ,如果配置多個值的話,用逗號隔開-->
????????<param name="fileUpload.allowedExtension">.txt</param>
????????????</interceptor-ref>
-
???? 自定義上傳文件的錯誤提示信息
???? 在動作類action同目錄下,創建一個名為fileuploadmessage.properties資源文件(名為自定義)
???? 該資源文件配置如下:
struts.messages.error.uploading=Error uploading: {0} ??? ??? ??? ???? struts.messages.error.file.too.large=File too large: {0} "{1}" "{2}" {3}
struts.messages.error.content.type.not.allowed=Content-Type not allowed: {0} "{1}" "{2}" {3}
struts.messages.error.file.extension.not.allowed=File extension not allowed: {0} "{1}" "{2}" {3}
?? ????
多文件上傳:
????所有流程與配置都與單文件上傳一致。
????需要注意的是,在頁面中,雖然是多文件上傳,但是頁面中表單的name屬性的值必須保持一致;
????在動作類action中聲明的相關屬性,類型改成數組;
????在業務方法中,相關處理流程改成單文件上傳的循環。
總結
以上是生活随笔為你收集整理的struts2文件上传(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PreparedStatement和St
- 下一篇: Ubuntu切换用户