Back

Cannot read properties of undefined (reading 'size') while uploading image to Appwrite

  • 0
  • Web
  • Storage
  • REST API
Burningflames
27 Dec, 2024, 16:35

I am trying to upload image to Appwrite but getting above mentioned error

TypeScript
import { ID } from "appwrite";
import storage from "./storage.js";

const addArticleImage = async (image, name) => {
  return storage.createFile("<BUCKET_ID>", ID.unique(), image, name);
};

export default addArticleImage;
TypeScript
import addArticleImage from "./appwrite/article_images.js";

import { Readable } from "stream";

const upload = multer({
  storage: multer.memoryStorage(),
});

app.post("/api/v1/images", upload.single("image"), async (req, res) => {
  try {
    console.log(req.file);
    res.json({ name: "HE" });
    const stream = Readable.from(req.file.buffer);

    const img = addArticleImage(stream, req.file.originalname);
    console.log(img);
  } catch (error) {
    console.log(error);
  }
});
TL;DR
Developers are encountering an error 'Cannot read properties of undefined (reading 'size')' while trying to upload an image to Appwrite. The issue occurs because req.file.buffer is undefined. To solve this, developers can use multer and Readable from "stream" to create a stream from req.file.buffer and then pass it into addArticleImage function.
Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more