解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法
来源:互联网 发布:防寒车衣淘宝网 编辑:程序博客网 时间:2024/05/20 19:29
今天在原来上传文件页面的基础上,想添加一段文件的简介
因为同时要上传文件,所以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-dataSolutions:Solution A:1. download http://www.servlets.com/cos/index.html2. invoke getParameters() on com.oreilly.servlet.MultipartRequestSolution B:1. download http://jakarta.apache.org/commons/sandbox/fileupload/2. invoke readHeaders() in org.apache.commons.fileupload.MultipartStreamSolution C:1. download http://users.boone.net/wbrameld/multipartformdata/2. invoke getParameter on com.bigfoot.bugar.servlet.http.MultipartFormDataSolution D:Use Struts. Struts 1.1 handles this automatically.
说是不详细,接着往下看,另一种解决方法
> Solution B:
> 1. download
> http://jakarta.apache.org/commons/sandbox/fileupload/
> 2. invoke readHeaders() in
> org.apache.commons.fileupload.MultipartStream
The Solution B as given by my dear friend is a bit hectic and a bit complex :(
We can try the following solution which I found much simpler (at least in usage).
1. Download one of the versions of UploadFile from http://jakarta.apache.org/commons/fileupload/
2. Invoke parseRequest(request) on org.apache.commons.fileupload.FileUploadBase which returns list of org.apache.commons.fileupload.FileItem objects.
3. Invoke isFormField() on each of the FileItem objects. This determines whether the file item is a form paramater or stream of uploaded file.
4. Invoke getFieldName() to get parameter name and getString() to get parameter value on FileItem if it's a form parameter. Invoke write(java.io.File) on FileItem to save the uploaded file stream to a file if the FileItem is not a form parameter.
按照上面的步骤来,果然一切都ok,GOOGLE真不错,主要是getFieldName和getString,
虽然说这种做法有一点麻烦,但稍微判断加工一下,总比获取不到强
- 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法
- 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法
- 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法
- 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法
- 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法
- 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法 ?
- 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的问题
- 当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到
- FORM的ENCTYPE="multipart/form-data" request.getParameter()获取不到值
- FORM的ENCTYPE="multipart/form-data" 时request.getParameter()值为null问题的解决
- FORM的ENCTYPE="multipart/form-data" 时request.getParameter()值为null问题的解决
- FORM的ENCTYPE="multipart/form-data" 时request.getParameter()值为null问题的解决
- java 页面上有ENCTYPE="multipart/form-data" 时action方法或者控制层用request.getParameter()获取不到值的方法
- 关于input标签带有enctype="multipart/form-data"而导致getParameter获取不到值的解决方法2
- struts中enctype="multipart/form-data",request.getParameter("file") 是null的问题分
- struts中enctype="multipart/form-data",request.getParameter("file") 是null的问题分
- 表单提交 enctype="multipart/form-data"的时候 request.getparameter取值为空的问题
- enctype="multipart/form-data"中Form参数的获取
- 路由器端口映射
- C++资源之不完全导引 [上] - -[quoted]
- 英国遭大规模黑客攻击 攻击源头主要在亚洲
- C++资源之不完全导引 [下] - -[quoted]
- 如何让让英文Windows XP操作系统正确显示中文
- 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法
- 程序人生(小说)
- SWT Examples阅读笔记 - Custom Controls
- 小心笑岔气:打电话的技巧
- 深入浅出命令模式
- 由菜鸟晋升高手 高级电脑技巧十二则
- Eclipse实用教程(配置JSP)
- 我的程序员人生
- 如何将32 x 32像素图标转换为16 x 16像素值的图标