React-native使用FormDate上傳圖片異常總結

近期一個用react-native的項目,上傳圖片功能我們用的是FormDate,按照文檔的提示寫好代碼。

async function uploadFile(url, params, fileUrl,fileName) {
    let Access_Token = await Storage.getItem('Access_Token');
    let data = new FormData();

    data.append('file', {
        uri: fileUrl,
        name: fileName,
        type: 'image/jpeg'
    });
    Object.keys(params).forEach((key)=> {
        if (params[key] instanceof Date) {
            data.append(key, value.toISOString())
        } else {
            data.append(key, String(params[key]))
        }
    });
    const fetchOptions = {
        method: 'POST',
        headers: {
            'Accept': 'application/json',
            'Access_Token': Access_Token ? Access_Token : '',
            'UserAgent':os
        },
        body: data
    };
    return fetch(url, fetchOptions)
        .then(checkStatus)
        .then(parseJSON)
}

android運行之后一切ok,完美上傳!但是ios出現了問題,上傳都失敗了?。?!說明發送的參數里面應該有ios無法識別的。找了半天,最后終于確定,是file里面的參數name出了問題。代碼如下:


      this.props.onFileUpload(file,response.fileName||'未命名文件')
                .then(result=>{
                    this.setState({
                        loading:false
                    })
                })

因為react-native-image-picker的showImagePicker返回值里面沒有fileName,就改成了‘未命名文件’,沒有后綴,所以ios無法識別,導致上傳失敗。改成'未命名文件.jpg'就可以正常上傳了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容