小程序
小游戏
企业微信
微信支付
扫描小程序码分享
wx.uploadFile 添加fromData属性,后台采用SSH框架,无论是用struts2的接收方式,还是使用request.getParameter();方式,都获取不到传过去的值,但是可以接收到文件。 同样的后台接口和参数,wx.request可以接收到
8 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
各位大哥,我踩到这个坑,问一下你们解决这个问题了吗,求教
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
同样掉进了这个坑里,还没找到取到的方法
wx.uploadFile,目测是模拟的form表单的post提交,使用普通的接收form表单数据的方式试试。
有可能是跨域问题
可以试试下面两种方式:
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 =
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"
));
"getFileUploadFormParameter fieldValue----->"
+ fileItem.getString(
}
else
//此处为非表单参数即文档参数
catch
(Exception e) {
e.printStackTrace();
logger.error(
"getFileUploadFormParameter Exception----->"
, e);
"getFileUploadFormParameter params----->"
+ JSON.toJSONString(params));
return
params;
谢了啊, 第一种方式我试过,是没有效果的。因为我是struts2框架,所以第二种方法还没有试过。我这个问题有点奇葩 ,在开发的时候写服务器地址测试是无效的,但是上传为体验版,再测试服务器就可以成功获取到上传参数..
额,那确实奇葩。。。
用Post才行,get不行
uploadFile method默认就是POST,两个都试过,不行的
奇葩有更甚,一样的请求,加上formdata上传到的是七牛云,结果把原先post直接更改成了get请求,,我特么懵比了好一阵...
卧槽... 那你有没有出现像我这样的问题。 上传的formData参数 接收不到
formData 后台同样接受不到.....
看来这特么就是个坑啊
header: {
"Content-Type": "multipart/form-data",
'Cookie': header.Cookie
},
header 指定跟我一样吗
url: ApiList.addComment,
method: 'POST',
filePath: that.data.img_arr[i],
name: 'upload', //文件对应的参数名字(key)
formData: fromData, //其它的表单信息
header: { "Content-Type": "multipart/form-data" },
dataType: 'json',
我之前没有配置header,但是了上去还是没有效果。
"Content-Type" : "multipart/form-data" , 是文件的协议啊。
如果还有其他的值话 是不是 conten-type得换一下啊
application/x-www-form-urlencoded;charset=utf-8
只有这两个可以用,里面有文件的,总不能用text/xml吧
关键这个问题有点奇葩,在本地测试是可以的,但是上传到服务器就不行了
本地可以。服务器不行 ? 你保证本地和服务器环境一致吗? 不是你们服务器有什么设置吧
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
各位大哥,我踩到这个坑,问一下你们解决这个问题了吗,求教
同样掉进了这个坑里,还没找到取到的方法
wx.uploadFile,目测是模拟的form表单的post提交,使用普通的接收form表单数据的方式试试。
有可能是跨域问题
可以试试下面两种方式:
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;
}
谢了啊, 第一种方式我试过,是没有效果的。因为我是struts2框架,所以第二种方法还没有试过。我这个问题有点奇葩 ,在开发的时候写服务器地址测试是无效的,但是上传为体验版,再测试服务器就可以成功获取到上传参数..
额,那确实奇葩。。。
用Post才行,get不行
uploadFile method默认就是POST,两个都试过,不行的
奇葩有更甚,一样的请求,加上formdata上传到的是七牛云,结果把原先post直接更改成了get请求,,我特么懵比了好一阵...
卧槽... 那你有没有出现像我这样的问题。 上传的formData参数 接收不到
formData 后台同样接受不到.....
看来这特么就是个坑啊
header: {
"Content-Type": "multipart/form-data",
'Cookie': header.Cookie
},
header 指定跟我一样吗
url: ApiList.addComment,
method: 'POST',
filePath: that.data.img_arr[i],
name: 'upload', //文件对应的参数名字(key)
formData: fromData, //其它的表单信息
header: { "Content-Type": "multipart/form-data" },
dataType: 'json',
我之前没有配置header,但是了上去还是没有效果。
"Content-Type" : "multipart/form-data" , 是文件的协议啊。
如果还有其他的值话 是不是 conten-type得换一下啊
application/x-www-form-urlencoded;charset=utf-8
只有这两个可以用,里面有文件的,总不能用text/xml吧
关键这个问题有点奇葩,在本地测试是可以的,但是上传到服务器就不行了
本地可以。服务器不行 ? 你保证本地和服务器环境一致吗? 不是你们服务器有什么设置吧