Skip to content

Commit 3517dbd

Browse files
committed
fixed uploads properly
1 parent eb64ed6 commit 3517dbd

File tree

3 files changed

+17
-13
lines changed

3 files changed

+17
-13
lines changed

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414
"server": "node src/index.js",
1515
"start": "electron .",
1616
"build:web": "vite build",
17-
"package:mac-arm64": "electron-packager . Localforge --platform=darwin --arch=arm64 --out=dist --icon=build/icons/mac/icon.icns --overwrite --asar.unpackDir=\"{public,uploads,views,tools,prompts,node_modules/level/**,node_modules/@level/**,node_modules/classic-level/**,node_modules/abstract-level/**}\" --osx-sign.identity=\"$MACOS_SIGNING_IDENTITY_FROM_ACTION\" --osx-sign.entitlements=build/entitlements.mac.plist",
18-
"package:mac-intel": "electron-packager . Localforge --platform=darwin --arch=x64 --out=dist --icon=build/icons/mac/icon.icns --overwrite --asar.unpackDir=\"{public,uploads,views,tools,prompts,node_modules/level/**,node_modules/@level/**,node_modules/classic-level/**,node_modules/abstract-level/**}\" --osx-sign.identity=\"$MACOS_SIGNING_IDENTITY_FROM_ACTION\" --osx-sign.entitlements=build/entitlements.mac.plist",
19-
"package:win": "electron-packager . Localforge --platform=win32 --arch=x64 --out=dist --icon=build/icons/win/icon.ico --overwrite --asar.unpackDir=\"{src,public,uploads,views,tools,prompts,node_modules/level/**,node_modules/@level/**,node_modules/classic-level/**,node_modules/abstract-level/**}\"",
20-
"package:linux": "electron-packager . Localforge --platform=linux --arch=x64 --out=dist --icon=build/icons/png/512x512.png --overwrite --asar.unpackDir=\"{src,public,uploads,views,tools,prompts,node_modules/level/**,node_modules/@level/**,node_modules/classic-level/**,node_modules/abstract-level/**}\"",
17+
"package:mac-arm64": "electron-packager . Localforge --platform=darwin --arch=arm64 --out=dist --icon=build/icons/mac/icon.icns --overwrite --asar.unpackDir=\"{public,views,tools,prompts,node_modules/level/**,node_modules/@level/**,node_modules/classic-level/**,node_modules/abstract-level/**}\" --osx-sign.identity=\"$MACOS_SIGNING_IDENTITY_FROM_ACTION\" --osx-sign.entitlements=build/entitlements.mac.plist",
18+
"package:mac-intel": "electron-packager . Localforge --platform=darwin --arch=x64 --out=dist --icon=build/icons/mac/icon.icns --overwrite --asar.unpackDir=\"{public,views,tools,prompts,node_modules/level/**,node_modules/@level/**,node_modules/classic-level/**,node_modules/abstract-level/**}\" --osx-sign.identity=\"$MACOS_SIGNING_IDENTITY_FROM_ACTION\" --osx-sign.entitlements=build/entitlements.mac.plist",
19+
"package:win": "electron-packager . Localforge --platform=win32 --arch=x64 --out=dist --icon=build/icons/win/icon.ico --overwrite --asar.unpackDir=\"{src,public,views,tools,prompts,node_modules/level/**,node_modules/@level/**,node_modules/classic-level/**,node_modules/abstract-level/**}\"",
20+
"package:linux": "electron-packager . Localforge --platform=linux --arch=x64 --out=dist --icon=build/icons/png/512x512.png --overwrite --asar.unpackDir=\"{src,public,views,tools,prompts,node_modules/level/**,node_modules/@level/**,node_modules/classic-level/**,node_modules/abstract-level/**}\"",
2121
"release": "npm run package",
2222
"create-dmg:arm64": "electron-installer-dmg ./dist/Localforge-darwin-arm64/Localforge.app Localforge --out=dist/installers-arm64 --icon=build/icons/mac/icon.icns --overwrite",
2323
"create-dmg:intel": "electron-installer-dmg ./dist/Localforge-darwin-x64/Localforge.app Localforge --out=dist/installers-intel --icon=build/icons/mac/icon.icns --overwrite"
@@ -75,7 +75,7 @@
7575
"views/**",
7676
"prompts/**",
7777
"tools/**",
78-
"uploads/**"
78+
"tools/**"
7979
],
8080
"directories": {
8181
"output": "release-builds"

src/routes/uploadRoutes.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,23 @@ import multer from 'multer';
33
import path from 'path';
44
import { fileURLToPath } from 'url';
55
import fs from 'fs';
6+
import os from "os";
67

78
// Get __dirname equivalent in ESM
89
const __filename = fileURLToPath(import.meta.url);
910
const __dirname = path.dirname(__filename);
1011

11-
// Create uploads directory if it doesn't exist
12-
const uploadDir = path.join(__dirname, '../../uploads');
13-
if (!fs.existsSync(uploadDir)) {
14-
fs.mkdirSync(uploadDir, { recursive: true });
12+
13+
14+
function getUploadDir() {
15+
const dir = path.join(os.tmpdir(), 'localforge_uploads');
16+
if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
17+
return dir;
1518
}
1619

20+
// Use OS temp directory for uploads
21+
const uploadDir = getUploadDir();
22+
1723
// Configure storage
1824
const storage = multer.diskStorage({
1925
destination: function (req, file, cb) {

src/server/index.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -160,9 +160,6 @@ import {AUX_MODEL, callLLMByType, EXPERT_MODEL, getModelNameByType, MAIN_MODEL}
160160
// Import and use compression routes
161161
const compressionRoutes = await import('../routes/compressionRoutes.js');
162162
app.use('/api/compression', compressionRoutes.default);
163-
164-
// Serve uploaded files
165-
app.use('/uploads', express.static(path.join(__dirname, '../../uploads')));
166163
})();
167164

168165
// Set EJS as the view engine
@@ -368,7 +365,8 @@ function processMessageForUploadedImage(message) {
368365
if(content.type === "image_url") {
369366
if(content.image_url.url.startsWith('/uploads/')) {
370367
let imageUrl = content.image_url.url;
371-
const filePath = path.join(__dirname, '../../', imageUrl);
368+
imageUrl = imageUrl.replace(/^\/uploads\//, '');
369+
const filePath = path.join(os.tmpdir(), 'localforge_uploads', imageUrl);
372370
const imageBuffer = fs.readFileSync(filePath);
373371
// Determine MIME type based on file extension
374372
const ext = path.extname(imageUrl).toLowerCase();

0 commit comments

Comments
 (0)