<FORM name="form1" METHOD="POST" ACTION="Servlet" ENCTYPE="multipart/form-data">
<input type="hidden" name="name" value="中文" >
</FORM>
为了上传文件,form属性中写了ENCTYPE="multipart/form-data"。可是在Servlet中 request.getParameter("name"); 无法取得隐藏表单name的值,取得的是null.如果把form属性中的ENCTYPE="multipart/form-data"去掉就可以,但是为了传文件还不能去掉.如果把form的提交方式改为ACTION="Servlet?name=<%=name%>"也可以取到值,但是表单实在太多,都用Servlet?name=<%=name%>"这种方式的话,恐怕太麻烦,也实在太多,更不灵活!请那位高手指点指点!!
<input type="hidden" name="name" value="中文" >
</FORM>
为了上传文件,form属性中写了ENCTYPE="multipart/form-data"。可是在Servlet中 request.getParameter("name"); 无法取得隐藏表单name的值,取得的是null.如果把form属性中的ENCTYPE="multipart/form-data"去掉就可以,但是为了传文件还不能去掉.如果把form的提交方式改为ACTION="Servlet?name=<%=name%>"也可以取到值,但是表单实在太多,都用Servlet?name=<%=name%>"这种方式的话,恐怕太麻烦,也实在太多,更不灵活!请那位高手指点指点!!
解决方案 »
- 关于一个Timer的问题,这东东怎么只会打印一次,服务器并没有停
- java处理visio的问题
- 求一个JAVA自学者QQ群
- 吐血了,再问最后一遍了!!!
- 打开JFileChooser怎么就这么难,求教了。
- 谁有mod_jk2.so 并有重谢!!
- java与oracle的连接问题
- 一个关于sql分段运行的问题.
- 为什么从邮件里面取得时间转换的不对?
- ------------- 难道没有高手知道许多公司都用的开发工具 netbuilder(不知拼写是否完全正确). 大家来评价一下----------------
- JDK里所有的基础类库都是拿java写的么?
- 请问如何把spinner中的数据读出来转换成date型?在线等
ENCTYPE="multipart/form-data"直接用request.getParameter("name"); 是取不到值的
在Servlet中不能使用 request.getParameter("name"); boolean isMultipart = FileUpload.isMultipartContent(request);
// Create a new file upload handlerupload.setSizeMax(100 * 1048576);
upload.setRepositoryPath(".");
List items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
//文本域
if (item.isFormField()) {
String name = item.getFieldName();
if (item.getFieldName().equals("ID")){
ID = item.getString();
}
}}
还有楼上的,问一下
if (item.isFormField()) {
String name = item.getFieldName();
if (item.getFieldName().equals("ID")){
ID = item.getString();
}
这段代码中的getFieldName这个方法是什么意思!
ENCTYPE="multipart/form-data"直接用request.getParameter("name"); 是取不到值的给楼猪一个上传文件的servlet示例
/**
* @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType(CONTENT_TYPE);
req.setCharacterEncoding("GBK");
PrintWriter out = resp.getWriter(); HttpSession session = req.getSession();
List list = null ;
String error = "" ;
try {
String category=(String)session.getAttribute("category");
filePath = getServletContext().getRealPath("/WEB-INF/");
//文件上传
loadFile(filePath, req, resp);
}catch(Exception e){
error = e.getMessage();
logger.error(error);
e.printStackTrace();
} if(error.equals("") && list.size()>0){
error = "部分人员学号重复或不存在" ;
}
req.setAttribute("error",error);
req.setAttribute("result",list);
getServletContext().getRequestDispatcher("result.jsp").forward(req , resp); }
//文件上传
public void loadFile(
String filePath,
HttpServletRequest req,
HttpServletResponse resp)
throws Exception {
DiskFileUpload fu = new DiskFileUpload();
fu.setSizeMax(10000000); //设置上传文件最大长度 10M bytes
fu.setSizeThreshold(4096);
// maximum size that will be stored in memory
boolean br = myCreateDir(filePath);
fu.setRepositoryPath(filePath);
List fileItems = fu.parseRequest(req);
Iterator i = fileItems.iterator();
FileItem fi = null;
while (i.hasNext()) {
fi = (FileItem) i.next();
if (fi.getName() == null) {
break;
}
fileName = getFileName(fi.getName());
File f = new File(filePath + fileName);
fi.write(f);
}
}
//创建目录
private boolean myCreateDir(String dirName) {
try {
File f = new File(dirName); if (f.exists()) {
return true;
} String parentDir = f.getParent(); if (parentDir == null) {
return false;
} File pf = new File(parentDir); if (pf.exists()) {
return f.mkdir();
} else if (myCreateDir(parentDir)) {
return f.mkdir();
} else {
return false;
}
} catch (Exception e) {
System.err.println("创建目录时出现错误:: "+e.getMessage());
e.printStackTrace();
return false;
}
}
//获取文件名
private String getFileName(String Path) {
String str = Path;
String ret = "";
if (Path == null)
return "";
if (str.indexOf("\\") > 0) {
int Index = str.lastIndexOf("\\");
ret = str.substring(Index + 1);
}
return (ret);
}
SmartUpload mySmartUpload = new SmartUpload();
mySmartUpload.initialize(config, request, response);
mySmartUpload.upload();
name = mySmartUpload.getRequest().getParameter("name");原来这样就可以,,哎,我实在太笨了