React Native Expo项目上传文件
在React Native项目中使用Expo库上传文件,可以使用FileSystem.uploadAsync()
方法。以下是一个简单的例子:
import * as FileSystem from 'expo-file-system';
import * as Sharing from 'expo-sharing';
async function uploadFileAsync(fileUri, uploadUrl) {
const fileUriParts = fileUri.split('/');
const fileName = fileUriParts[fileUriParts.length - 1];
const fileExtension = fileName.split('.')[1];
const uploadOptions = {
toUrl: uploadUrl,
mediaType: `image/${fileExtension}`,
method: 'POST',
};
const res = await FileSystem.uploadAsync(fileUri, uploadOptions);
console.log(res.status, res.headers, res.body);
// 可选:使用Sharing API在上传成功后分享文件
if (res.status === 200) {
await Sharing.shareAsync(fileUri);
}
}
// 使用示例:
// uploadFileAsync(FileSystem.documentDirectory + 'myFile.png', 'https://yourserver.com/upload');
在这个例子中,uploadFileAsync
函数接受文件的URI和上传的服务器URL,然后使用FileSystem.uploadAsync
上传文件。上传完成后,如果成功,可以使用Sharing.shareAsync
分享文件。
注意:上述代码中的uploadUrl
应该是你的服务器端点,它应该能处理POST请求并接收multipart/form-data类型的数据。服务器端的实现会依据你的服务器端语言而有所不同。
评论已关闭