首选从request.getInputStream()中获取输入,每次读一行byte[8 * 1024],然后发现每行都有特定标志,
普通参数content-disposition: form-data;name="a"
文件参数content-disposition: form-data;name="a" filename="a.txt"
通过这种规律来判断是普通参数还是文件参数,filename不是空则包装成FilePart文件对象,如果没有filename参数,则认为是普通参数,包装成ParamPart。
每读一行后面接着的是对应的值或者文件流,对于普通参数值则最多写byte[128],对于文件写到指定目录每次写byte[8 * 1024],直到写完,结束为-1。
最后分别对普通参数和文件参数添加到两个HashTable中,方便使用。