React Native 文件上传:使用 Fetch API 和 Axios
要在 React Native 中上传文件到后端,您可以使用 fetch API 或 axios 库来发送 POST 请求。以下是使用 fetch API 的示例代码:
const uploadFile = async (fileUri) => {
try {
const formData = new FormData();
formData.append('file', {
uri: fileUri,
type: 'image/jpeg', // 根据实际文件类型进行调整
name: 'photo.jpg', // 根据实际文件名进行调整
});
const response = await fetch('https://example.com/upload', {
method: 'POST',
body: formData,
});
const result = await response.json();
console.log(result);
} catch (error) {
console.error(error);
}
};
// 调用上传文件函数
uploadFile('file://path/to/file.jpg');
在上述代码中,我们首先创建了一个 FormData 对象,并将文件添加到 FormData 中。然后,我们使用 fetch API 发送一个 POST 请求,将 FormData 作为请求体发送到服务器。最后,我们解析服务器返回的响应数据。
请注意,您需要根据实际情况调整文件的类型和名称,并将上传文件的 URL 替换为您的后端服务器 URL。
如果您更喜欢使用 axios 库,您可以按照以下方式进行设置和使用:
首先,您需要安装 axios 库:
npm install axios
然后,您可以使用以下代码将文件上传到后端:
import axios from 'axios';
const uploadFile = async (fileUri) => {
try {
const formData = new FormData();
formData.append('file', {
uri: fileUri,
type: 'image/jpeg', // 根据实际文件类型进行调整
name: 'photo.jpg', // 根据实际文件名进行调整
});
const response = await axios.post('https://example.com/upload', formData);
console.log(response.data);
} catch (error) {
console.error(error);
}
};
// 调用上传文件函数
uploadFile('file://path/to/file.jpg');
与使用 fetch API 相比,使用 axios 库可以提供更多的功能和便利性,例如自动处理 JSON 解析和错误处理。
请记住,根据您的后端 API 的要求,您可能需要调整请求头或其他参数。
原文地址: https://www.cveoy.top/t/topic/10W 著作权归作者所有。请勿转载和采集!