This is my function export async function uploadFile(file, type) { try { if (!file || !file.assets || !file.assets[0]) { throw new Error('Invalid file object provided'); }
const {mimeType, ...rest} = file; // Extract necessary properties.
const asset = {mimeType, ...rest}
// Logging for debugging purposes
console.log("Asset:", asset);
console.log("Type:", type);
// Assuming appwriteConfig is imported from somewhere
const uploadedFile = await storage.createFile(
appwriteConfig.storageId,
ID.unique(),
asset
);
// Logging for debugging purposes
console.log("Uploaded File:", uploadedFile);
// Assuming getFilePreview is defined elsewhere
const fileUrl = await getFilePreview(uploadedFile.$id, type);
return fileUrl;
} catch (error) {
// Rethrowing error with additional context
throw new Error(`File upload failed: ${error.message}`);
}
}
// Get File Preview
export async function getFilePreview(fileId, type) {
let fileUrl;
try {
if (type === "video") {
fileUrl = storage.getFileView(appwriteConfig.storageId, fileId);
} else if (type === "image") {
fileUrl = storage.getFilePreview(
appwriteConfig.storageId,
fileId, 2000, 2000, "top", 100
);
} else {
throw new Error("Invalid file type");
}
if (!fileUrl) throw Error;
return fileUrl;
} catch (error) {
throw new Error(error);
}
}
this is output LOG Asset: {"assets": [{"assetId": null, "base64": null, "duration": null, "exif": null, "fileName": "1000000053.jpg", "filesize": 501109, "height": 2400, "mimeType": "image/jpeg", "rotation": null, "type": "image", "uri": "file:///data/user/0/host.exp.exponent/cache/ExperienceData/%2540anonymous%252Funtitled-f9b93264-058b-4952-b665-7546a2f16126/ImagePicker/307bead8-7750-41cf-b405-ec06454d4b4b.jpeg", "width": 1080}], "canceled": false, "mimeType": undefined} LOG Type: image LOG Uploaded File: undefined
Recommended threads
- How to disable appwrite/embedding from s...
Hi everyone! I'm currently running a self-hosted instance of Appwrite. For my current use case, I don't need the AI/embedding features, and I noticed the `app...
- Invalid type for attribute 'email': emai...
I'm using the node-appwrite SDK to create a table, the column payload looks like this: ```json [{"key":"email","type":"email","required":true, "size": 512}] ``...
- Git connection is not working anymore on...
Hello all, I updated from 1.8.1 to 1.9.0 then 1.9.5. All seems to work even the Github connection. In Git configuration I see my Github user but when trying to...