struts2上傳

今天在使用struts2上傳的過程中無意發現,struts2上傳一個文件大小為0字節的文本竟然會報錯FileNotFoundException,嘗試了好久也沒找到答案,最后只能判斷文件的大小后上傳,至于文件字節為0的怎么處理就看各位了

struts2上傳java源碼

 1 package com.jzgx.web.action;
 2 
 3 import java.io.File;
 4 
 5 import org.apache.commons.io.FileUtils;
 6 import org.apache.struts2.ServletActionContext;
 7 import org.apache.struts2.convention.annotation.Action;
 8 import org.apache.struts2.convention.annotation.Result;
 9 
10 import com.opensymphony.xwork2.ActionSupport;
11 
12 @Action(value="fileUpload",results={@Result(name="success",location="/result.jsp"),@Result(name="input",location="/error.jsp")})
13 public class FileUploadAction extends ActionSupport{
14     
15     /* 上傳文件*/
16     private File doc;
17     /* 上傳文件名稱  */
18     private String docFileName;
19     /* 獲取上傳文件類型*/
20     private String docContentType;
21 
22     @Override
23     public String execute() throws Exception {
24         try{
25             //1.獲得文件上傳的上傳目錄
26             String realPath=ServletActionContext.getServletContext().getRealPath("/upload");
27             //2.設置保存目標文件的路徑和文件名
28             File target=new File(realPath+File.separator+this.getDocFileName());
29             //如果doc.length()=0會出現FileNotFoundException,沒想到好的解決方法,暫時先過濾掉
30             if(doc.length()!=0){
31                 //3.copy文件內容,上傳文件
32                 FileUtils.copyFile(doc, target);
33             }
34             return "success";
35         }catch(Exception e){
36             e.printStackTrace();
37             return "error";
38         }
39     }
40     
41     public String getDocFileName() {
42         return docFileName;
43     }
44     public void setDocFileName(String docFileName) {
45         this.docFileName = docFileName;
46     }
47 
48     public File getDoc() {
49         return doc;
50     }
51     public void setDoc(File doc) {
52         this.doc = doc;
53     }
54 
55     public String getDocContentType() {
56         return docContentType;
57     }
58     public void setDocContentType(String docContentType) {
59         this.docContentType = docContentType;
60     }
61 }

struts.xml配置文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE struts PUBLIC
 3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 4     "http://struts.apache.org/dtds/struts-2.3.dtd">
 5 <struts>
 6     <!-- web應用編碼字符集 采用GBK-->
 7     <constant name="struts.i18n.encoding" value="GBK"></constant>
 8     <!-- 上傳文件的大小限制設成2G -->
 9     <constant name="struts.multipart.maxSize" value="2097152000"></constant>
10 </struts>

?

?

?

轉載于:https://www.cnblogs.com/gavinYang/p/3500224.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/259008.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259008.shtml
英文地址,請注明出處:http://en.pswp.cn/news/259008.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

BitSet之為什么用long保存信息

BitSet內部使用long[] words來保存位信息。咋看之下并不理解原因&#xff0c;在解讀set(int bitIndex)之后似乎有了一些領悟。 public void set(int bitIndex) { if (bitIndex < 0) throw new IndexOutOfBoundsException("bitIndex < 0: " bitIndex); //用來計…

ipv4地址是幾位二進制數_幾張思維導圖,讓你清楚的知道ip地址怎么回事?

網絡工程中&#xff0c;ip地址是必須要了解的內容&#xff0c;今天我們用幾張思維導圖來給大家詳細講解IP地址。一、什么是IP地址在生活中我們使用具有上網功能的電子設備都有IP地址&#xff0c;就跟每個人都有自己的名字一樣。IP地址分為IPV4 IPV6&#xff0c;我們所說的的IP地…

《關系營銷2.0——社交網絡時代的營銷之道》一檢查拼寫和語法

本節書摘來異步社區《關系營銷2.0——社交網絡時代的營銷之道》一書中的第2章&#xff0c;作者&#xff1a; 【美】Mari Smith 譯者&#xff1a; 張猛 , 于宏 , 趙俐 責編&#xff1a; 陳冀康, 更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 檢查拼寫和語法 關系營銷2…

dlib人臉檢測功能介紹

本文主要介紹三個點&#xff1a; 1. 如何單獨建立一個工程&#xff0c;使用dlib的人臉檢測功能。 2. 提高人臉檢測率的兩個方法 3. 加速人臉檢測的方法 下面圍繞這幾個點展開敘述。 建人臉檢測工程 1 . 首先我們先使用上期說的examples里的人臉檢測。 我們只要將face_de…

ios網絡開發 網絡狀態檢查

http://www.cnblogs.com/hanjun/archive/2012/12/01/2797622.html 網絡連接中用到的類&#xff1a; 一.Reachability 1.添加 Reachability 的.h和.m文件&#xff0c;再添加SystemConfiguration.framework。 2.Reachability中定義了三種網絡狀態&#xff1a; typedef Num{ NotR…

delphi xe4 ini文件不能讀取的解決方法

今天發現用inifiles下 tinifile.readstring方法突然不能讀數據了&#xff0c;結果把ini文件格式由utf-8改成unicode后就能正常讀取了。轉載于:https://www.cnblogs.com/liqiao/p/3503985.html

《眾妙之門——網頁排版設計制勝秘訣》——3.4 展現品牌視覺的同時保持網頁的可讀性...

本節書摘來自異步社區《眾妙之門——網頁排版設計制勝秘訣》一書中的第3章&#xff0c;第3.4節&#xff0c;作者&#xff1a; 【德】Smashing Magazine 譯者&#xff1a; 侯景艷 , 范辰 更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 3.4 展現品牌視覺的同時保持網頁的…

vs2013創建及使用DLL

這幾天看了許多關于生成Dll的博文&#xff0c;很有感觸&#xff0c;遂整理在此&#xff0c;以供自己后續參考。 VS2013創建DLL 我們使用vs2013來生成Dll&#xff0c;其實使用其他的版本也是同理如此。步驟如下&#xff1a; 單擊“新建項目”&#xff0c;選擇“Win32 項目”&a…

python的作用域分別有幾種_python中作用域與函數嵌套

知識回顧&#xff1a; 拆解傳參。 1.字典傳參。使用** 2.列表傳參。使用* 實際上我們在定義函數的時候&#xff0c;如果省略了星號&#xff0c;那么在調用函數的時候必須要省略星號&#xff0c;除非我們拆解后的參數個數剛好相等。 視頻內容 本節知識視頻教程 文字講解開始&…

這個博客的由來

筆者從事電信行業大型商業智能系統工作多年&#xff0c;日前從事B2C電商網站類數據分析工作&#xff0c;特開設此微博&#xff0c;在發表好文同時&#xff0c;研究網站分析技術。轉載于:https://www.cnblogs.com/sambazhu/p/3508633.html

《Axure RP8 網站和APP原型制作 從入門到精通》一2.7 交付

本節書摘來自異步社區《Axure RP8 網站和APP原型制作 從入門到精通》一書中的第2章&#xff0c;第2.7節&#xff0c;作者 金烏&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看 2.7 交付 模型一旦經過批準&#xff0c;我們就可以進入切圖和優化圖像環節了。我…

iOS UISegmentedControl 的使用

當用戶輸入不僅僅是布爾值時&#xff0c;可使用分段控件&#xff08;UISegmentedControl&#xff09;。分段控件提供一欄按鈕&#xff08;有時稱為按鈕欄&#xff09;&#xff0c;但只能激活其中一個按鈕。分段控件會導致用戶在屏幕上看到的內容發生變化。它們常用于在不同類別…

js粘貼板為什么獲取不到圖片信息_【第1829期】復制黏貼上傳圖片和跨瀏覽器自動化測試...

前言這個操作體驗倒是不錯。今日早讀文章由丁香園蔣璇投稿分享。蔣璇, 前端開發攻城獅, 現任職于丁香園. 英語愛好者, 測試驅動開發(TDD)&行為驅動開發(BDD)推崇者. 先專注于 https://github.com/Jiang-Xuan/tuchuang.space 項目的測試驅動開發探索正文從這開始~~在網頁中上…

在C++中調用DLL中的函數

&#xfeff;轉載自&#xff1a;http://blog.sina.com.cn/s/blog_53004b4901009h3b.html   應用程序使用DLL可以采用兩種方式&#xff1a;一種是隱式鏈接&#xff0c;另一種是顯式鏈接。在使用DLL之前首先要知道DLL中函數的結構信息。Visual C6.0&#xff08;或者更先進的版…

CentOS LVS安裝配置

目錄(?)[] 一般2.6.10以上內核版本都已經自帶了ipvsadm,故不需要安裝。 Ipvs 1.25編譯 ipvsadm-1.25編譯不過 去掉netlink庫的依賴&#xff1a;去掉libipvs/Makefile的CFLAGS -DLIBIPVS_USE_NL&#xff0c;去掉Makefile的LIBS -lnl。需要popt庫解析命令行&#xff0c;在這里…

《淘寶網開店 拍攝 修圖 設計 裝修 實戰150招》一一2.7 橫式構圖和豎式構圖...

本節書摘來自異步社區出版社《淘寶網開店 拍攝 修圖 設計 裝修 實戰150招》一書中的第2章&#xff0c;第2.7節&#xff0c;作者&#xff1a; 葛存山&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.7 橫式構圖和豎式構圖 橫幅畫面&#xff0c;即畫面底邊…

Node.js初接觸(一)

本來還在糾結著到底要學哪一種后臺語言呢&#xff0c;突然發現node.js很火&#xff0c;既然能被這么多人推崇&#xff0c;自然是有他的優勢的。去百度百科看了一眼&#xff0c;或許是我理解能力太差&#xff0c;并沒有了解到很多關于node.js的東西&#xff0c;大概就是知道了No…

python request file upload_Python基于requests實現模擬上傳文件

方法1&#xff1a; 1.安裝requests_toolbelt依賴庫 #代碼實現 def upload(self): login_token self.token.loadTokenList() for token in login_token: tempPassword_url self.config[crm_test_api]/document/upload tempPassword_data self.data_to_str.strToDict(title:1.…

MATLAB中的randi函數

randi Pseudorandom integers from a uniform discrete distribution.來自一個均勻離散分布的偽隨機整數 R randi(IMAX,N) returns an N-by-N matrix containing pseudorandom integer values drawn from the discrete uniform distribution on 1:IMAX.返回一個NN的包含偽隨機…

C++ dll的隱式與顯式調用

&#xfeff;&#xfeff;&#xfeff;轉載自&#xff1a;http://blog.sina.com.cn/s/blog_53004b4901009h3b.html   應用程序使用DLL可以采用兩種方式&#xff1a;一種是隱式鏈接&#xff0c;另一種是顯式鏈接。在使用DLL之前首先要知道DLL中函數的結構信息。Visual C6.0&…