Java中:
用了enctype="multipart/form-data"
就不能getParmeter了因为
他是一个特殊的标记啊
只能通过特殊的方法得到需要的数值啊
你的这种方法我没试过,我是用jspSmartUpload上传的,enctype="multipart/form-data"和 request.getParameter()确实不能同时使用,但这个组件提供了替代的方法:new SmartUpload().getRequest()返回一个Request类型对象,这个对象提供了替代的方法,有兴趣可以参考一下.
PHP:
评优系统用到了Excel表的上传:
<FORM METHOD="POST" ACTION="3231313.jsp" ENCTYPE="multipart/form-data">
<INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>
<input type="SUBMIT" value="上传" />
</FORM>
代码解释:
ENCTYPE="multipart/form-data"用于表单里有图片上传。
表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application /x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作:
enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进制的方式传过去,所以request就得不到值了。 也就是说加了这段代码,用request就会传递不成功,取表单值加入数据库时,用到下面的:
SmartUpload su = new SmartUpload();//新建一个SmartUpload对象
su.getRequest().getParameterValues();取数组值
su.getRequest().getParameter( );取单个参数单个值
原因:
一旦在网页post中加入了ENCTYPE="multipart/form-data"就是以二进制传输,而不加入就直接传输,php会自动根据这个bondary去做二进制的解析,而Java不会,所以,我们在上传图片的时候必须加入这个form-data,图片是以二进制形式上传的,所以,我们必须加入,否则就没法传到服务端去做解析。服务端就那么编写的,就这个原因,无它。
用了enctype="multipart/form-data"
就不能getParmeter了因为
他是一个特殊的标记啊
只能通过特殊的方法得到需要的数值啊
你的这种方法我没试过,我是用jspSmartUpload上传的,enctype="multipart/form-data"和 request.getParameter()确实不能同时使用,但这个组件提供了替代的方法:new SmartUpload().getRequest()返回一个Request类型对象,这个对象提供了替代的方法,有兴趣可以参考一下.
PHP:
评优系统用到了Excel表的上传:
<FORM METHOD="POST" ACTION="3231313.jsp" ENCTYPE="multipart/form-data">
<INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>
<input type="SUBMIT" value="上传" />
</FORM>
代码解释:
ENCTYPE="multipart/form-data"用于表单里有图片上传。
表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application /x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作:
enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进制的方式传过去,所以request就得不到值了。 也就是说加了这段代码,用request就会传递不成功,取表单值加入数据库时,用到下面的:
SmartUpload su = new SmartUpload();//新建一个SmartUpload对象
su.getRequest().getParameterValues();取数组值
su.getRequest().getParameter( );取单个参数单个值
原因:
一旦在网页post中加入了ENCTYPE="multipart/form-data"就是以二进制传输,而不加入就直接传输,php会自动根据这个bondary去做二进制的解析,而Java不会,所以,我们在上传图片的时候必须加入这个form-data,图片是以二进制形式上传的,所以,我们必须加入,否则就没法传到服务端去做解析。服务端就那么编写的,就这个原因,无它。
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/3026/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
评论列表