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

解決當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.
說是不詳細,接著往下看,另一種解決方法

表單中enctype="multipart/form-data"的意思,是設定 表單的MIME編碼。預設情況,這個編碼格式是application/x-www-form-urlencoded,不能用於檔案上傳;只有使用了 multipart/form-data,才能完整的傳遞檔案資料

但是設定了 enctype="multipart/form-data" ,除了file型別表單能獲取到,其他value通過request.getParameter都得不到。這種情況下我們可以利用元件來解決該問題,例如用 jspsmartupload元件

   com.jspsmart.upload.SmartUpload su = new   com.jspsmart.upload.SmartUpload();
   su.initialize(pageContext);
   su.service(request, response);
   su.setTotalMaxFileSize(100000000);
   su.setAllowedFilesList("zip,rar");
   su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
   su.upload();

   String Name = su.getRequest().getParameter("Name");
   String TYPE_ID = su.getRequest().getParameter("Type");

通過 su.getRequest().getParameter("value");就可以了,su.upload()好象必須放在前面,測試中將su.upload()放在獲取引數後面不成功。

相關推薦

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

今天在原來上傳檔案頁面的基礎上,想新增一段檔案的簡介 因為同時要上傳檔案,所以ENCTYPE="multipart/form-data" 必須要加在form裡面 可是這樣的話,我再servlet裡面用request.getParameter()方法無論如何都只是獲得null值

解決FORM的ENCTYPE="multipart/form-data" request.getParameter()獲取的問題

今天在原來上傳檔案頁面的基礎上,想新增一段檔案的簡介 因為同時要上傳檔案,所以ENCTYPE="multipart/form-data" 必須要加在form裡面 可是這樣的話,我再servlet裡面用request.getParameter()方法無論如何都只是獲得null

解決python傳送multipart/form-data請求上傳檔案的問題

    #coding=utf8 import requests from uuid import uuid4 import os file_name='test' url= boundary=uuid4().hex header={'Content-Typ

enctype已經設定為multipart/form-datarequest.getinputstream()仍然為null

struts2開發環境中,通過設定enctype="multipart/form-data"上傳檔案時,在另一個jsp頁面中通 過request.getInputStream()手動獲取二進位制流結果為null的問題原因描述 上傳檔案時,可以通過設定: enctype="m

【轉】遇到request.getParameter()獲取

轉載網址:https://blog.csdn.net/iriszx999/article/details/75585052?utm_source=blogxgwz1 說白了就是pageEncoding和charset的用法不同,以下是它們的區別: pageEncoding表示這個頁面接收到引數以

request.getParameter()獲取到資料的問題

在我們做專案時有時會發現:客戶端通過http協議post方式上傳資料到服務端, 在伺服器端通過request.getInputStream()能獲取到相應的資料,但用request.getParameter()卻獲取不到資料。 這是怎麼回事呢? 這種情況跟form表

jsp的request.getParameter獲取到表單引數

[b]可能原因:[/b]1: form表單中的控制元件沒有定義name屬性2: form表單中的控制元件被設定成disabled3: form表單的enctype="multipart/form-data"是一種用於上傳檔案的表單[b]解決方法:[/b]對於第三種情況我們直接

jquery通過ajax-json訪問java後臺傳遞引數,通過request.getParameter獲取到引數的說明

Java後臺伺服器是apache-tomcat-6.0.37 正常的post請求(不包括ajax請求)在http頭中的content-type為application/x-www-form-urlencoded,這時在java後臺可以通過request.getPara

node進階| 解決表單enctype="multipart/form-data" 獲取到Input的問題

分割字符串 odi logs -1 字符串 var dex 路徑 date() 今天在學習node踩到一個坑:form設置enctype="multipart/form-data"上傳文件時,無法獲取到表單其他input的值。 因為之前上傳文件用的是 formidable

檔案上傳下載,在form表單中設定屬性enctype=“multipart/form-data”的情況下,如何獲取表單提交的

一、問題描述 檔案上傳下載時,在form表單中設定屬性enctype=“multipart/form-data”的情況下,如何獲取表單提交的有關使用者資訊的值?(比如:textfield、radio等屬性中的值) 二、解決方法 1、情況一:沒有對user物件進行封裝 方法:

JSP中表單加了enctype="multipart/form-data"屬性後request就接收到表單傳過來的的問題

  1.get方式  get方式提交的話,表單項都儲存在http header中,格式是  http://localhost:8080/hello.do?name1=value1&name2=value2這樣的字串。JSP端通過request.getPara

Nginx上傳檔案413錯誤Processing of multipart/form-data request failed. Unexpected EOF read on the socket

問題描述: 利用ajax通過nginx上傳檔案到tomcat時,前端url報413http錯誤。 後臺tomcat控制檯也輸出對應的異常資訊,如下。 解決方法: 新增上傳檔案大小的最大值。 修改nginx的配置檔案:nginx.conf。目錄一般在 /usr/local/n

swagger匯入的寫法 Processing of multipart/form-data request failed. Stream ended unexpectedly

swagger匯入的寫法 @ApiOperation(value = "匯入") @PostMapping(value = "ImportItam",consumes = "multipart/*",headers = "content-type=multipart/form-da

簡單解決 multipart/form-data 檔案上傳表單中 傳遞引數無法獲取的辦法! (解決辦法:動態更改表單提交URL)

在jsp(其它動態web頁面好像也存在)中,如果要上傳檔案,表單的enctype就必須設定為"multipart/form-data"了,這樣就能夠傳遞檔案資料,卻無法傳遞引數,如下的表單: [xhtml] view plaincopyprint? 01.<for

解決 ENCTYPE= "multipart/form-data "表單提交獲取方案

表單經常上傳附件,會使用到ENCTYPE= "multipart/form-data "這句話的意思是處理表單的所有資訊以流方式提交,頁面上的所有資訊已經都轉換為了檔案流,為的是能讓服務端得到你上傳的檔案的檔案流。表單中enctype="multipart/form-data

springMvc 完美解決 multipart/form-data 方式提交請求 在 Filter 中 ServletRequest.getParameter方法 獲取到引數的問題

本文 只講使用不過多闡述原理(因為我也沒太深究),希望有熟知原理的朋友不吝分享 下面開始。 ------------------------------------------------------------------------------ 無聊的前言  但是還是得

上傳檔案form表單enctype="multipart/form-data"傳解決辦法(代原始碼)

四個檔案原始碼分別為: web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://ww

<form> multipart/form-data 上傳圖片

mbo tar nco 報錯 dial kit [] zip bbc 1 <form method="post" enctype="multipart/form-data" id="fileinfo" name="fileinf

x-www-form-urlencoded與multipart/form-data區別

app 所有 get filename tar 應該 www mon view http://blog.chinaunix.net/uid-7210505-id-329700.html application/x-www-form-urlencoded 與 multipar

HTTP multipart/form-data 上傳方式說明(有8個註意點)

ria ubi reference 就會 ros pda www tran cep ( From: http://home.meegoq.com/home-space-do-blog-uid-17-id-81.html ) HTTP multipart/form-data