解決當FORM的ENCTYPE="multipart/form-data" 時request.getParameter()獲取不到值的方法

今天在原來上傳文件頁面的基礎上,想添加一段文件的簡介

因爲同時要上傳文件,所以ENCTYPE="multipart/form-data" 必須要加在form裏面

可是這樣的話,我再servlet裏面用request.getParameter()方法無論如何都只是獲得null值,

不是一般的鬱悶,百度了一下,有人出現了同樣的問題可是它用的是jspsmartupload組件實現文件上傳的,

而我用的commons fileupload組件,仔細看了一下這個組件的api,可是英語太差了,沒有發現相關的信息

我又嘗試用session傳遞參數,可是發現有點麻煩,因爲在表單提交之時你就得賦給session表單上它的數值,

這似乎要javascript,可是偶也不會,

後來只有google了,搜索了一些中文網頁,也沒有找到資料,試試不限制語言,呵呵呵,一大片,後來被俺發

現了這個

I cannot read the submitter using request.getParameter("submitter") (it returns null). ]

Situation:

javax.servlet.HttpServletRequest.getParameter(String) returns null when the ContentType is multipart/form-data

Solutions:

Solution A:

1. download http://www.servlets.com/cos/index.html
2. invoke getParameters() on com.oreilly.servlet.MultipartRequest

Solution B:

1. download http://jakarta.apache.org/commons/sandbox/fileupload/
2. invoke readHeaders() in 
org.apache.commons.fileupload.MultipartStream

Solution C:

1. download http://users.boone.net/wbrameld/multipartformdata/
2. invoke getParameter on 
com.bigfoot.bugar.servlet.http.MultipartFormData

Solution D:

Use Struts. Struts 1.1 handles this automatically.
說是不詳細,接着往下看,另一種解決方法

按照上面的步驟來,果然一切都ok,GOOGLE真不錯,主要是getFieldName和getString,
雖然說這種做法有一點麻煩,但稍微判斷加工一下,總比獲取不到強
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章