用Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型。
下边是说明:application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分。text/plain: 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。用于表单里有图片上传。
<form name="userInfo" method="post" action="first_submit.jsp" ENCTYPE="multipart/form-data">
表单标签中设置enctype="multipart/form-data"来确保匿名上载文件的正确编码。如下: <tr> <td height="30" align="right">上传企业营业执照图片:</td> <td><INPUT TYPE="FILE" NAME="uploadfile" SIZE="34" ōnChange="checkimage()"></td> </tr>就得加ENCTYPE="multipart/form-data"。 表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是 application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作. enctype=\"multipart/form-data\"是上传二进制数据; form里面的input的值以2进制的方式传过去。 form里面的input的值以2进制的方式传过去,所以request就得不到值了。 也就是说加了这段代码,用request就会传递不成功,
取表单值加入数据库时,用到下面的:
SmartUpload su = new SmartUpload();//新建一个SmartUpload对象
su.getRequest().getParameterValues();取数组值
su.getRequest().getParameter( );取单个参数单个值 当值很多时,使用数组传值是个不错的选择。 <input type='text' name='formVar[year1]' value=''> function toHere($formVar) { echo $formVar['year1']; }