众所周知,用了enctype="multipart/form-data"就无法直接通request.getParameter()来接收输入框内的参数。找了一圈 发现很多方法都是用了组件来解决,作为刚入门的小白,我想用最基本的io流来操作
1.将表单写入文件存放在本地
于是可以得到这样一个文件

2.用BufferedReader一行一行地读这个文件
indexOf()一旦检测到了title就readLine()两次,相当于下移两行并将读到的title的值存进一个字符串里

3.找到前面的信息和后面的文件数据中间的分界线
也就是,找到前面的信息究竟占了多少个字节。
将前面读取到的信息不断拼接成一个总的字符串,找到了image这一行,就把该字符串转为字节数组,记下该字节数组的长度,即记下前面所有信息所占的字节。需要注意的是,readLine不会自动添加换行符,需要自己加上"\r\n",否则不会换行


本文介绍了如何使用Java的基本IO流处理表单中enctype="multipart/form-data"的二进制数据,特别是读取和保存图片文件。通过将表单内容写入文件,然后使用BufferedReader逐行读取,寻找数据分界线,跳过非图片数据,最终复制并保存图片。
最低0.47元/天 解锁文章
5111

被折叠的 条评论
为什么被折叠?



