黑马程序员技术交流社区
标题:
<以解决>在<form>中添加属性enctype问题
[打印本页]
作者:
于启会
时间:
2012-8-5 22:52
标题:
<以解决>在<form>中添加属性enctype问题
本帖最后由 于启会 于 2012-8-6 20:34 编辑
添加了上传属性之后,在servlet中用request.getParameter("")接收表单中的参数值为空。请问怎么解决?
作者:
于启会
时间:
2012-8-6 20:33
//创建SmartUpload对象
SmartUpload mySmartUpload = new SmartUpload();
try{
//上传初始化
mySmartUpload.initialize(config, request, response);
//设置每个上传文件的最大长度
mySmartUpload.setMaxFileSize(1024*1024*3);
//设置总上传数据的长度
mySmartUpload.setTotalMaxFileSize(1024*1024*50);
//设置允许上传的文件类型,只允许上传.jpg,.gif,.png文件
mySmartUpload.setAllowedFilesList("jpg,gif,png");
//设置禁止上传的文件类型,禁止上传带有exe,bat的文件
mySmartUpload.setDeniedFilesList("exe,bat,txt,sql");
//上传文件
mySmartUpload.upload();
//将上传文件保存到指定目录
int count=mySmartUpload.save("image\\");
out.println(//利用request对象获取参数之值
mySmartUpload.getRequest().getParameter("paramete")+" "
);
//显示处理结果
out.println("<font color=red>"+count+"</font> File Upload!<br>");
//处理每个上传文件
for(int i=0;i<mySmartUpload.getFiles().getCount();i++){
File file=mySmartUpload.getFiles().getFile(i);
//判断用户是否选择了文件
if(!file.isMissing()){
//打印文件名
out.println("文件名: <font color=red>"
+file.getFileName()+"</font><br>"
);
//打印文件扩展名
out.println("File ExtName:<font color=red>"
+file.getFileExt()+"</font><br>"
);
//打印文件路径,包括目录
out.println("Path: <font color=red>"
+file.getFilePathName()+"</font><br>");
out.println("<img src=image\\"+file.getFileName()+">");
//保存到项目根目录下
file.saveAs("image\\"+file.getFileName(),
mySmartUpload.SAVE_PHYSICAL);
}
}
}catch (Exception e) {
// TODO: handle exception
}
//获取jsp页面标签"name"的value值
String nmae=mySmartUpload.getRequest().getParameter("name");
System.out.println("name:"+nmae);
复制代码
问题终于找到了。。
用的是SmartUpload组件上传的。添加了enctype="multipart/form-data"之后,action的传值编码格式改变,只支持文件上传的编码。就不能使用request.getParameter()方法进行获取value值了。使用SmartUpload组件的request.getParameter();就能接收到参数的value值了,但是必须在文件上传之后执行,否则还是会为空。
只有在文件上传之后,获取参数成功
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2