I’m currently working with multer
file upload in node js but i got an error something just like this:
This is my multer
config:
const multer = require('multer')
/* Multer */
const FILE_TYPE_MAP = {
'image/png': 'png',
'image/jpeg': 'jpeg',
'image/jpg': 'jpg'
}
const storage = multer.diskStorage({
destination: function (req, file, cb) {
const isValid = FILE_TYPE_MAP[file.mimetype]
let uploadError = new Error('invalid image type')
if (isValid) {
uploadError = null
}
console.log("INSIDE MULTER");
cb(uploadError, './public/admin/assets/images/offerproduct-images')
},
filename: function (req, file, cb) {
const filename = file.originalname.split(' ').join('-')
const extension = FILE_TYPE_MAP[file.mimetype]
cb(null, `${filename.split('.')[0]}-${Date.now()}.${extension}`)
}
})
const uploadOptions = multer({ storage: storage })
This is my router look like:
adminrouter.post(
"/pressAddproduct",
uploadOptions.array("productImg", 10),
adminController.PressAddproductButton
);
The form in ejs:
<form id="productForm" action="/pressAddproduct" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="productName">Name</label>
<input type="text" id="productName" name="productName" placeholder="Enter product name" required>
</div>
<div class="form-group">
<label for="productImg">Images</label>
<input type="file" id="productImg" name="productImg" accept="image/*" multiple required>
</div>
<div class="form-group">
<label for="description">Description</label>
<textarea id="description" name="description" rows="4" placeholder="Enter product description" required></textarea>
</div>
<div class="form-group">
<label for="stockQuantity">Stock Quantity</label>
<input type="number" id="stockQuantity" name="stockQuantity" placeholder="Enter stock quantity" required>
</div>
<div class="form-group">
<label for="category">Category</label>
<select id="category" name="category" required>
<% allcats.forEach(element => { %>
<option value="<%= element._id %>"><%= element.name %></option>
<% }) %>
</select>
</div>
<div class="form-group">
<label for="brand">Brand</label>
<select id="brand" name="brand" required>
<% allbrands.forEach(element => { %>
<option value="<%= element._id %>"><%= element.name %></option>
<% }) %>
</select>
</div>
<div class="form-group">
<label for="price">Price</label>
<input type="number" id="price" name="price" placeholder="Enter price" required>
</div>
<div class="form-actions">
<button type="submit">Add Product</button>
</div>
</form>
Can somebody tell me what the problem is because i’ve been messed up with this error for a day