uploadFile fromData
发布于 6 年前 作者 weitang 18769 次浏览 来自 问答

wx.uploadFile 添加fromData属性,后台采用SSH框架,无论是用struts2的接收方式,还是使用request.getParameter();方式,都获取不到传过去的值,但是可以接收到文件。 同样的后台接口和参数,wx.request可以接收到

8 回复

各位大哥,我踩到这个坑,问一下你们解决这个问题了吗,求教

同样掉进了这个坑里,还没找到取到的方法

可以试试下面两种方式:

1、

Map<String, String[]> paramMap = request.getParameterMap();

2、

/**
 * 获取文件上传请求中的表单参数
 */
private Map<String, String> getFileUploadFormParameter(HttpServletRequest request) {
    Map<String, String> params = Maps.newHashMap();
    try {
        DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
        ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);
        List<FileItem> fileItems = servletFileUpload.parseRequest(request);
        for (FileItem fileItem : fileItems) {
            logger.info("getFileUploadFormParameter    fieldName----->" + fileItem.getFieldName());
            if (fileItem.isFormField()) {
                //此处为表单参数,表单参数名称:fileItem.getFieldName(),表单参数值:fileItem.getString("UTF-8")。
                params.put(fileItem.getFieldName(), fileItem.getString("UTF-8"));
                logger.info("getFileUploadFormParameter    fieldValue----->" + fileItem.getString("UTF-8"));
            } else {
                //此处为非表单参数即文档参数
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
        logger.error("getFileUploadFormParameter    Exception----->", e);
    }
    logger.info("getFileUploadFormParameter    params----->" + JSON.toJSONString(params));
    return params;
}

用Post才行,get不行

有可能是跨域问题

奇葩有更甚,一样的请求,加上formdata上传到的是七牛云,结果把原先post直接更改成了get请求,,我特么懵比了好一阵…

wx.uploadFile,目测是模拟的form表单的post提交,使用普通的接收form表单数据的方式试试。

header: {

“Content-Type”: “multipart/form-data”,

‘Cookie’: header.Cookie

},

header 指定跟我一样吗

回到顶部