有ENCTYPE="multipart/form-data",request.getParameter()取不到值 FORM中有ENCTYPE="multipart/form-data",在servlet里面用request.getParameter()方法获得是null值,怎么才能取到正确值?不可以去掉ENCTYPE="multipart/form-data"来解决 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看这个,对你应该有帮助http://www.wangchao.net.cn/bbsdetail_68525.html 现在的人,提问题都相当有艺术哈..把人搞得云里雾里,麻烦你能说清楚一点你的问题不?现在是什么样? 问题是什么? 代码贴出来?希望结果是怎么样? 这样问不是很好??? enctype 是上传文件用的.. ENCTYPE="multipart/form-data"这个当然是上传文件用的,现在就是要用它,在提交的servlet里不晓得怎么取得表单里提交的参数值,用了ENCTYPE="multipart/form-data",提交的参数是以二进制传的,想再用request.getParameter()是得不到参数的值的。大家给个例子看看嘛 在没有任何框架的情况下,要自己解析request里的内容,request只能一次获取,上传文件的同时,再取parameter是取不到,我不知道你上传的文件是怎么接的,如果自己解析request里的内容,就可以同时把文件内容,parameter等等信息都解析出来。 DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); List items = new ArrayList(); try { items = upload.parseRequest(request); } catch (FileUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } Iterator it; it = items.iterator(); String assistants=""; String file_sharing_system=""; String internet_fax=""; while(it.hasNext()) { FileItem fileItem = (FileItem)it.next(); if(fileItem.isFormField()) { System.out.println("---"+fileItem.getFieldName()); if("assistants".equals(fileItem.getFieldName())){ assistants=fileItem.getString("assistants"); assistants=Util.formatRequest(assistants, MailMain.s_os, SysConts.New_InCharSet); } if("file_sharing_system".equals(fileItem.getFieldName())){ file_sharing_system=fileItem.getString("file_sharing_system"); file_sharing_system=Util.formatRequest(assistants, MailMain.s_os, SysConts.New_InCharSet); } if("internet_fax".equals(fileItem.getFieldName())){ internet_fax=fileItem.getString("internet_fax"); internet_fax=Util.formatRequest(assistants, MailMain.s_os, SysConts.New_InCharSet); } } }看我错在哪里了?谢谢!! 在servlet可以取到你传递的请求地址.就是那个action地址,可以把参数跟在地址后,以get方式提交.看看能取到不?取不到的话.自己取那个地址,反正参数就在后面.自己解析一下. 把参数放在url后面不太合理吧,提交的参数很多呢?这样做不太好 sorry.不是以get方式提交.文件上传的时候不能get提交.还是那方法.把参数附加在action后,在servlet直接取那个地址.类似String[] queryparams = request.getQueryString().split("&"); 把参数附加在action后,这种方式可以实现,这样做你觉得好吗?我不想这样做,继续等待 fileItem.getString(String encoding),参数是编码方式。我想你要获取页面表单的数据,只能按页面表单的顺序调用fileItem.getString()方法来获取。 这种方式提交的复合表单,需要处理流数据,你可以自己处理;也可以搜 common-upload等别人封装好的东西来处理。 你把复合表单提交给这个程序:<%@ page import="java.io.*"%><%InputStream is = (InputStream)request.getInputStream();byte[] buf = new byte[1024];int readn;while((readn = is.read(buf))!=-1){ System.out.println(new String(buf,0,readn));}is.close();%>看看控制台输出你就明白了,自己处理其实也不难,不过建议使用common-upload.jar。 struts的错误如何解决。。。我汗了一下午了。。。 <select size=40 id="userlist" > </select> 怎么吧扎个list的项 给清空 table去线问题 有比long更长的数字类型吗? WEB 开发用什么IDE好? jsp中人民币转换成美元如何实现? java查询sqlserver数据库长文本问题 java特殊字符的显示“濬” 【急求帮助】用java发送邮件报530 5.7.1 Authentication required jasperreports,JasperViewer客户端打印 如何用jsf/richfaces实现拖曳 短信接口发送问题
http://www.wangchao.net.cn/bbsdetail_68525.html
现在是什么样? 问题是什么? 代码贴出来?希望结果是怎么样? 这样问不是很好???
enctype 是上传文件用的..
ServletFileUpload upload = new ServletFileUpload(factory);
List items = new ArrayList();
try {
items = upload.parseRequest(request);
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Iterator it;
it = items.iterator();
String assistants="";
String file_sharing_system="";
String internet_fax="";
while(it.hasNext())
{
FileItem fileItem = (FileItem)it.next();
if(fileItem.isFormField())
{
System.out.println("---"+fileItem.getFieldName());
if("assistants".equals(fileItem.getFieldName())){
assistants=fileItem.getString("assistants");
assistants=Util.formatRequest(assistants, MailMain.s_os, SysConts.New_InCharSet);
}
if("file_sharing_system".equals(fileItem.getFieldName())){
file_sharing_system=fileItem.getString("file_sharing_system");
file_sharing_system=Util.formatRequest(assistants, MailMain.s_os, SysConts.New_InCharSet);
}
if("internet_fax".equals(fileItem.getFieldName())){
internet_fax=fileItem.getString("internet_fax");
internet_fax=Util.formatRequest(assistants, MailMain.s_os, SysConts.New_InCharSet);
}
}
}
看我错在哪里了?谢谢!!
看看能取到不?取不到的话.自己取那个地址,反正参数就在后面.自己解析一下.
还是那方法.把参数附加在action后,在servlet直接取那个地址.
类似String[] queryparams = request.getQueryString().split("&");
<%@ page import="java.io.*"%>
<%
InputStream is = (InputStream)request.getInputStream();byte[] buf = new byte[1024];
int readn;while((readn = is.read(buf))!=-1){
System.out.println(new String(buf,0,readn));
}is.close();
%>看看控制台输出你就明白了,自己处理其实也不难,不过建议使用common-upload.jar。