当前位置: 移动技术网 > IT编程>开发语言>Java > Java 处理 multipart/mixed 请求

Java 处理 multipart/mixed 请求

2019年04月22日  | 移动技术网IT编程  | 我要评论

一、multipart/mixed 请求

  multipart/mixed 和 multipart/form-date 都是多文件上传的格式。区别在于,multipart/form-data 是一种特殊的表单上传,其中普通字段的内容还是按照一般的请求体构建,文件字段的内容按照 multipart 请求体构建,后端在处理 multipart/form-data 请求的时候,会在服务器上建立临时的文件夹存放文件内容,可参看。而 multipart/mixed 请求会将每个字段的内容,不管是普通字段还是文件字段,都变成 stream 流的方式去上传,因此后端在处理 multipart/mixed 的内容时,必须从 stream流中处理。

二、servlet 处理 multipart/mixed 请求

            part signpart = request.getpart(constants.sign_key);
            part appidpart = request.getpart(constants.appid_key);
            part noncestrpart = request.getpart(constants.noncestr_key);
            map<string, string[]> parammap = new hashmap<>(8);
            parammap.put(signpart.getname(), new string[]{stream2str(signpart.getinputstream())});
            parammap.put(appidpart.getname(), new string[]{stream2str(appidpart.getinputstream())});
            parammap.put(noncestrpart.getname(), new string[]{stream2str(noncestrpart.getinputstream())});
    private string stream2str(inputstream inputstream) {
        bufferedreader reader = null;
        try {
            reader = new bufferedreader(new inputstreamreader(inputstream, "utf-8"));
            string line;
            stringbuffer buffer = new stringbuffer();
            while ((line = reader.readline()) != null) {
                buffer.append(line);
            }
            return buffer.tostring();
        } catch (unsupportedencodingexception e) {
            e.printstacktrace();
        } catch (ioexception e) {
            e.printstacktrace();
        } finally {
            try {
                reader.close();
            } catch (ioexception e) {
                e.printstacktrace();
            }
        }
        return "";
    }

三、springmvc 处理 multipart/mixed 请求

    @responsebody
    @requestmapping(value = {"/token/user/uploadimage.yueyue", "/token/user/uploadimage"}, method = {requestmethod.post, requestmethod.get})
    public ajaxlist uploadimage(
             @requestpart (required = false) string token,
             @requestpart (required = false) string sign,
             @requestpart (required = false) string appid,
             @requestpart (required = false) string noncestr,
             @requestpart multipartfile avatar, httpservletrequest request) {

             }

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网