我本来准备把word文件插入到数据库,现在看来好像不行,只好舍而求其次,把文件的路径插入到数据库,可是刚刚测试发现type="file",如果用request.getParameter(file),获取到的是null,
请问各位高手,怎么获取type="file"怎么获取里面的值啊?这个路径我准备存到数据库,这样打开的时候就方便了
请问各位高手,怎么获取type="file"怎么获取里面的值啊?这个路径我准备存到数据库,这样打开的时候就方便了
如果表单以 enctype="multipart/form-data”编码参数,则通过POST发送后,参数不能通过request.getParameter获得,只能从请求流中获取,即 request.getInputStream()
直接把流中的内容写成文件,其实根本不是原来的文件,用文本编辑器打开就可以看到原因:
==================================================================
-----------------------------7d41412a102aa
Content-Disposition: form-data; name="t1"
test
-----------------------------7d41412a102aa
Content-Disposition: form-data; name="file"; filename="C:\Documents and Settings\NetSniffer\My Documents\My Pictures\4139defd-4082403.jpg"
Content-Type: image/pjpeg
...二进制信息体....
-----------------------------7d41412a102aa
Content-Disposition: form-data; name="Submit"
提交
-----------------------------7d41412a102aa--
可以看出每段信息体都是以-----------------------------7d41412a102aa 隔开,要生成二进制的图片只能从流中获取中间的[二进制信息体],然后将此段信息写成文件即为原始文件体,SmartUpload也正是剖析multipart/form-data这种编码生成的请求流格式,分段取,当段中含有 【filename="】这样的字段时,就开始一个二级制文件的读取,从此位置读到分隔符,取出二进制信息体,然后保存。