在文件上传页面的form里面“<form action=jsp1.jsp enctype="MULTIPART/FORM-DATA" method=post>”中的enctype是什么意思,加上这个在action或servlet、jsp页里不能用request.getParameter("")来获取其它form数据,为什么?删除enctype能用request.getParameter()方法来获取form其它数据,比如文本框“text”类型数据。?  高手请指点,非常感谢!

解决方案 »

  1.   

    enctype="MULTIPART/FORM-DATA"是用来设置form的编码格式,
    form默认是采用application/x-www-form-urlencode格式的,不能用于上传文件。
    并且采用MULTIPART/FORM-DATA后,都是以二进制的格式上传的,所以request.getParameter()得不到数据。
      

  2.   

    不知道你用的是什么上传组建?
    SmarsUpload这个上传得组建作的功能比较强大,你可以用它来上传
    但是必须设置enctype="MULTIPART/FORM-DATA" ,这样你用request得到的属性是null,这是因为smartUpload把你要上传的表单数据做了封装,你只要用它内置的request即可得到表单中其他的属性值.
    到目前为止,smartUpload还没有解决上传文件的中文名字保存问题,不过已经有人解决,你可以到网上搜一下.
      

  3.   

    1 楼的回答比较准确,上传文件和非上传文件提交到web服务器的数据编码格式不同。
    而且也建议你去使用那些组件。