您的位置:首页 > 产品设计 > UI/UE

解决post提交表单(文件上传) request.getParameter 取值为空的问题

2012-08-23 16:00 525 查看
像碰到form表单中既有文件上传,又有接收的字段的时候,字段想用 request.getParameter 来得到,往往是null

<form action="FileUpload" method="post" enctype="multipart/form-data" name="form1">
<input type="text" name="text">
<input type="file" name="file">
<input type="button" name="Submit" value="upload" onclick="ok()">
</form>


如上在public void doPost(HttpServletRequest request, HttpServletResponse response)  中调用request.getParameter("text")得到的是null

怎么才能得到呢?有两种解决方案

1、用两个表单: (比较麻烦)
一个采用POST提交的文件上传的from ,一个采用GET提交的字段的from ,再将第二个form的值作为第一个的参数

function ok() {
var name = form2.name.value;
var title= form2.title.value;
form1.action="FileUpload?name="+name+"&title="+title;
form1.submit();
}
2、commons-fileupload 判断fieldName,来区分是上传的文件还是字段

ServletFileUpload upload = new ServletFileUpload(factory);
try {
List items = upload.parseRequest(request);
for (Iterator i = items.iterator(); i.hasNext();) {
FileItem fileItem = (FileItem) i.next();
String field = fileItem.getFieldName(); //判断fieldname,
if(field.equals("kind")){
kind = fileItem.getString();
continue;
}else if(field.equals("id")){
id = fileItem.getString();
continue;
}else if(field.equals("topic")){
topic = fileItem.getString();
continue;
}

3、jspSmartUpload  专门提供了 SmartUpload.getRequest().getParameter("text")
    具体介绍见我另外一篇博客   http://blog.csdn.net/jazywoo123/article/details/7900114
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息