@@ -2,15 +2,32 @@ const express = require("express");
22const router = express . Router ( ) ;
33const multer = require ( "multer" ) ;
44const path = require ( "path" ) ;
5+ const fs = require ( "fs" ) ;
56const { uploadSketch, getAllSketches } = require ( "../controllers/sketchController" ) ;
67
7- // Multer configuration
8+ let uploadDir ;
9+
10+ try {
11+ uploadDir = path . join ( process . cwd ( ) , "uploads" ) ;
12+ if ( ! fs . existsSync ( uploadDir ) ) {
13+ fs . mkdirSync ( uploadDir , { recursive : true } ) ;
14+ }
15+ } catch ( err ) {
16+ console . error ( "Failed to create upload directory in project root. Falling back to /tmp:" , err ) ;
17+ uploadDir = "/tmp/uploads" ;
18+ fs . mkdirSync ( uploadDir , { recursive : true } ) ;
19+ }
20+
21+ console . log ( "Sketch uploads directory:" , uploadDir ) ;
22+
823const storage = multer . diskStorage ( {
9- destination : "uploads/" , // Temporary storage before uploading to Cloudinary
10- filename : ( req , file , cb ) => {
11- cb ( null , file . fieldname + "-" + Date . now ( ) + path . extname ( file . originalname ) ) ;
12- } ,
24+ destination : ( req , file , cb ) => cb ( null , uploadDir ) ,
25+ filename : ( req , file , cb ) => {
26+ const uniqueName = `${ file . fieldname } -${ Date . now ( ) } ${ path . extname ( file . originalname ) } ` ;
27+ cb ( null , uniqueName ) ;
28+ } ,
1329} ) ;
30+
1431const upload = multer ( { storage } ) ;
1532
1633router . post ( "/sketch/upload" , upload . single ( "image" ) , uploadSketch ) ;
0 commit comments