【问题标题】:FormData is not working fine with Expo CLI React nativeFormData 无法与 Expo CLI React native 一起正常工作
【发布时间】:2021-08-20 17:07:21
【问题描述】:

最近我遇到了在 Expo CLI 中上传文档功能的问题 - React native,问题是文件没有像 FormData() 那样传递到后端,它以一个奇怪的数组到达,根本不像网站,我得到了连接到 React JS 项目的同一端点,它工作正常,浏览器正确传递文档, 但不确定 FromData 这里有什么问题, 我也试过 react-native-fs 但它与 Expo 不兼容 这是我的代码

                    let formData = new FormData();
                formData.append('file', doc);
                let token = this.props.user.token;
                let header = { headers: { 'Accept': '*', 'Authorization': 'Bearer '+token, 'Content-Type': 'multipart/form-data' } };
                let res = await axios.post(BackendURL+'/porta/files/upload/'+document.projectDocumentId, formData, header);
                if(res.data.success === true){
                    alert('File uploaded successfully');
                    this.props.ReloadData(true);
                }
                console.log(doc);

【问题讨论】:

  • 看看这个question。希望对你有帮助
  • 你尝试过安卓设备和模拟器吗?你也尝试过 iOS 吗? “奇怪的数组”是什么意思?我不应该是字节数组格式吗?
  • @Saamer 是的,它应该像浏览器二进制文件
  • 我只使用IOS
  • 在 Android 上尝试一下,看看是否可行。它可能与 HEIC 格式的文件有关

标签: javascript react-native expo multipartform-data form-data


【解决方案1】:

问题已解决, 标题中的问题,我删除了内容类型并像这样接受

                    let formData = new FormData();
                formData.append('file', {
                    name: doc.name,
                    uri: doc.uri,
                    type: "application/pdf"
                });
                this.props.loadingStatus(true); 
                let token = this.props.user.token;
                let header = { headers: {  'Authorization': 'Bearer '+token } };
                let res = await axios.post(BackendURL+'/portal/files/upload/'+document.projectDocumentId, formData, header);

【讨论】:

    猜你喜欢
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 2022-07-04
    • 2018-06-13
    相关资源
    最近更新 更多