1

我正在尝试使用 React Native 库axiosFormData. 上传工作正常,但是当我上传head视频文件时,它们都以一些不应该存在的字符串开头,因此无法播放视频。

这是我的代码:

import axios from 'axios';
import FormData from 'form-data';
import { Platform } from 'react-native';

try {
    const url = 'https://...';
    const data = new FormData();
    data.append('video', {
        name: 'myVideo',
        uri: Platform.OS === 'android' ? videoUri : videoUri.replace('file://', ''),
        type: 'video/mov',
    });
    const uploadResponse = await axios.put(url, data, {
        headers: {
            // 'Content-Type': 'multipart/form-data', // tried with and without this
        }
    });
} catch(e) {
    console.log(e);
}

上面的代码将视频上传到服务器(实际上是通过预签名的 url 到 S3)。但是我无法播放这些视频,因为它们会保存一些额外的数据。例如,如果我跑步,head -c 256 uploadedVideoFile.mov我会得到这样的结果:

--dro5DtjS8rCz5979_aCEic78uFOzlZStGqWLS8IlThZeETtfKCHj56npfl03OktoK4oKmf
content-disposition: form-data; name="video"; filename="68DCD13E-524E-437E-AE94-95343C2A9F2B.mov"
content-type: video/quicktime

ftypqt  qt wide=�gmdat�@
�|��]��C�y���&gt;��\1<B    grֲ�7���2h"����g���xBd�R(l���e����CI�X�X��x�&amp;(–(�

前 5-6 行不应该在那里。

任何想法为什么会发生这种情况?我认为这与FormData而不是axios因为我也使用它进行了测试fetch并得到了相同的结果。

4

0 回答 0