backwang
backwang
  • 发布:2019-01-13 20:07
  • 更新:2021-10-11 10:05
  • 阅读:23142

uni.uploadFile接口使用问题

分类:uni-app

uni.uploadFile({
url: "http://127.0.0.1:1823/tcp2/public/app2/Ccontent/FileUpload",
filePath: _filePath,
name: "file",
header: {
'content-type': 'multipart/form-data'
},
success: (uploadFileRes) => {
console.log(uploadFileRes.data);
},
fail: (res) => {
console.log(res);
}
});
后台用的是PHP,用$_FILES["file"]始终接收不到内容一直是空的说找不到name为file的KEY,不能理解这个API的DEMO都不行。请问是哪里使用有问题吗

2019-01-13 20:07 负责人:无 分享
已邀请:
草灯

草灯 - Never say die

你不能设置content-type,uploadFile会自动帮你设置的。我也是后来才发现的。
但是我在其他浏览器没问题,火狐又上传不了,现在也没找到解决办法

  • 予象

    去掉了 H5的就可以上传了,这到底是什么原因啊? 来回折腾了好久。


    2019-06-12 18:02

  • 1***@qq.com

    谢谢,我也去掉就可以了,太坑了


    2020-10-24 10:32

  • 1***@163.com

    app端还是不行是为什么?


    2020-12-10 17:36

  • x***@163.com

    多谢,我去掉也可以了,和后端还联调了好久了【苦涩】


    2021-04-26 11:30

  • 累死的炮灰

    回复 1***@163.com: 你解决了吗 我app端上传经常出问题


    2021-10-11 10:06

h***@163.com

h***@163.com - Han涛

请H5使用uni.uploadFile跨域 的正确解决方式!

  • 2***@qq.com

    解决了吗 我也遇到了


    2021-09-08 09:11

蹦豆儿

蹦豆儿

我统一回复一下,我之前也遇到类似的问题,解决方案是:将header里的Content-Type去掉,就可以了

  • 1***@163.com

    H5是可以了,app要怎么解决啊~


    2020-12-10 17:37

  • 蹦豆儿

    回复 1***@163.com: 抱歉,只做过一个APP,没有涉及到此问题


    2020-12-22 10:09

Trust

Trust - 少说废话

本地测试要用子网分配的 IP 地址,而不是 127.0.0.1 或者 localhost 这种本机别名。

b***@qq.com

b***@qq.com

请求里已经加了 'content-type': 'multipart/form-data'
但是用浏览器查看消息头,并没有加上。

Host: 192.168.8.195:8000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0
Accept: /
Accept-Language: zh-HK,zh-CN;q=0.8,zh;q=0.6,en-US;q=0.4,en;q=0.2
Accept-Encoding: gzip, deflate
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
Referer: http://192.168.8.195:8080/demo/picture/website/
Origin: http://192.168.8.195:8080
Connection: keep-alive

用html源生代码请求头是下面这样,差别还是挺大的。

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: zh-HK,zh-CN;q=0.8,zh;q=0.6,en-US;q=0.4,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=---------------------------191691572411478
Content-Length: 218550
Connection: keep-alive
Upgrade-Insecure-Requests: 1

b***@qq.com

b***@qq.com

服务器是golang 返回的错误就是:
request Content-Type isn't multipart/form-data

b***@qq.com

b***@qq.com

H5有这个问题,在Adnroid平台没问题。

  • 4***@qq.com

    请问H5调用这个uni.uploadFile后台服务器一直接收不到参数是怎么回事


    2019-05-23 17:00

  • lingyi

    回复 4***@qq.com: 同样遇到这个问题,请问解决了吗


    2019-05-26 18:06

  • 9***@qq.com

    回复 lingyi: 同样遇到了 请问解决了吗


    2019-11-19 21:15

1***@qq.com

1***@qq.com

后台已设置header允许跨域,为什么uploadFile还是会报跨域的错误啊?

9***@qq.com

9***@qq.com

同样遇到了 请问解决了吗

Visean

Visean

请问H5调用这个uni.uploadFile后台服务器一直接收不到参数是怎么回事
小程序也是不行的,都获取不到数据
这个就没有人解决吗?

2***@qq.com

2***@qq.com

实践操作,通过楼上的方式完美解决!

x***@163.com

x***@163.com

H5端不要加header: {"Content-Type": "multipart/form-data"}

  • 2***@qq.com

    去掉了 还是报跨域问题 怎么解决呀?uni.uploadFile({

    url: 'http://47.92.236.250:7079/salesman/api/wx/base64ChangeImg', //仅为示例,非真实的接口地址

    filePath: igmFile[0],

    name: 'file',

    formData: {

    // base64

    // 'user': 'test'

    },

    header:{

    // 'content-type':'multipart/form-data'

    },

    success: (uploadFileRes) => {

    console.log(uploadFileRes.data);

    },

    fail:(err)=>{

    console.log(err)

    }

    });


    2021-09-08 09:16

累死的炮灰

累死的炮灰 - 累死的炮灰

header:{

‘’content-type':'multipart/form-data'

},
在打包的app端要不要加上这个请求头 ,h5没加一直可以,

该问题目前已经被锁定, 无法添加新回复