学习bug

2025.8.6,在发帖功能中,一直出现上传的图片页面无法上传的问题,bucket中有上传的图片,但是数据库中的image_url一直为空,复制up的源码也没有用

​记录一下我的解决办法

​export const uploadFile = async (image_key: string, file: ImageResult) => {

try {

const res = await storage.createFile('689318ae002bdaf1ece1', image_key, {

name: image_key,

type: 'image/jpeg',

size: file.height * file.width,

uri: file.uri,

});

const fileId = res.$id;

// 手动拼接图片 URL

const endpoint = 'https://cloud.appwrite.io/v1';

const projectId = 'XXX';

const bucketId = 'XXX';

const fileUrl = `{endpoint}/storage/buckets/{bucketId}/files/{fileId}/view?project={projectId}&mode=admin`;

return {

fileId,

fileUrl,

};

} catch (error) {

console.log('uploadFile error:', error);

throw error;

}

};

​const pickImage = async () => {

try {

let result = await ImagePicker.launchImageLibraryAsync({

mediaTypes: ["images", "videos"],

allowsEditing: true,

aspect: [4, 3],

quality: 1,

});

if (!result.canceled) {

const compressedImage = await compressImage(result.assets[0].uri);

if (compressedImage) {

if (!compressedImage) {

Alert.alert("图片压缩失败");

return;

}

const { fileId, fileUrl } = await uploadFile(

ID.unique(),

compressedImage

);

if (!fileUrl) {

Alert.alert("图片上传失败");

return;

}

setImage(fileUrl);

}

}

} catch (error) {

console.log(error);

Alert.alert("图片选择失败");

}

};

​希望能帮助后来的朋友😘👌

相关推荐
大飞pkz10 分钟前
【设计模式】组合模式
开发语言·设计模式·c#·组合模式
Dream achiever32 分钟前
6.WPF控件---Label
开发语言·wpf
前端伪大叔39 分钟前
第13篇:🎯 如何精准控制买入卖出价格?entry/exit\_pricing 实战配置
javascript·python
麦当_1 小时前
ReAct 模式在 Neovate 中的应用
前端·javascript·架构
itslife1 小时前
vite源码 - 开始
前端·javascript
Achieve - 前端实验室1 小时前
【每日一面】React Hooks闭包陷阱
前端·javascript·react.js
Asort1 小时前
JavaScript设计模式(四)——建造者模式:优雅构建复杂对象的实用指南
前端·javascript·设计模式
360智汇云1 小时前
k8s共享存储fuse-client三种运行方案对比
java·linux·开发语言
先知后行。1 小时前
QT音视频
开发语言·qt·音视频
二向箔reverse2 小时前
人脸特征可视化进阶:用 dlib+OpenCV 绘制面部轮廓与器官凸包
开发语言·python