Skip to content

Commit

Permalink
test upload 3
Browse files Browse the repository at this point in the history
  • Loading branch information
Aweiro committed Nov 5, 2024
1 parent ab9d059 commit 8b2250a
Showing 1 changed file with 55 additions and 46 deletions.
101 changes: 55 additions & 46 deletions js/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -93,59 +93,68 @@ app.get('/photos', async (req, res) => {
//2 ulpoad

app.post('/upload', upload.single('photo'), async (req, res) => {
try {
const { description, decorName, price } = req.body;


console.log("Файл отримано для завантаження:", req.file);

if (!req.file) {
return res.status(400).json({ message: 'Файл не завантажено.' });
console.error("Файл відсутній у запиті.");
return res.status(400).json({ message: 'Не вдалося завантажити фото, файл відсутній.' });
}

const uniqueToken = uuidv4();
const blob = bucket.file(`uploads/${req.file.originalname}`);
const blobStream = blob.createWriteStream({
metadata: {
contentType: req.file.mimetype,
metadata: {
firebaseStorageDownloadTokens: uniqueToken,
},
},
});

blobStream.on('error', (error) => {
console.error('Помилка завантаження в Firebase Storage:', error);
return res.status(500).json({ message: 'Не вдалося завантажити фото.' });
});

blobStream.on('finish', async () => {
const publicUrl = `https://firebasestorage.googleapis.com/v0/b/${bucket.name}/o/uploads%2F${encodeURIComponent(req.file.originalname)}?alt=media&token=${uniqueToken}`;

const newPhoto = {
name: req.file.originalname,
url: publicUrl,
description: description || 'Опис відсутній',
decorName: decorName || 'Назва декору відсутня',
price: price ? parseFloat(price) : 0,
};

try {
await db.collection('photos').add(newPhoto);
console.log('Фото успішно збережено в Firestore:', newPhoto);
res.status(200).json({ message: 'Фото успішно завантажено!', file: newPhoto });
} catch (error) {
console.error('Помилка збереження в Firestore:', error);
res.status(500).json({ message: 'Не вдалося зберегти фото в Firestore.' });
}
});

blobStream.end(req.file.buffer);
} catch (error) {
console.error('Помилка завантаження фото:', error);
res.status(500).json({ message: 'Сталася помилка при завантаженні фото.' });
}
const { description, decorName, price } = req.body;

if (!req.file) {
return res.status(400).json({ message: 'Файл не завантажено.' });
}

try {
const uniqueToken = uuidv4();
const blob = bucket.file(`uploads/${req.file.originalname}`);
const blobStream = blob.createWriteStream({
metadata: {
contentType: req.file.mimetype,
metadata: {
firebaseStorageDownloadTokens: uniqueToken,
},
},
});

blobStream.on('error', (error) => {
console.error("Помилка завантаження в Firebase Storage:", error);
res.status(500).json({ message: 'Не вдалося завантажити фото.' });
});

blobStream.on('finish', async () => {
const publicUrl = `https://firebasestorage.googleapis.com/v0/b/${bucket.name}/o/uploads%2F${encodeURIComponent(req.file.originalname)}?alt=media&token=${uniqueToken}`;

const newPhoto = {
name: req.file.originalname,
url: publicUrl,
description: description || 'Опис відсутній',
decorName: decorName || 'Назва декору відсутня',
price: price ? parseFloat(price) : 0,
};

try {
await db.collection('photos').add(newPhoto);
console.log("Фото успішно збережено в Firestore:", newPhoto);
res.status(200).json({ message: 'Фото успішно завантажено!', file: newPhoto });
} catch (error) {
console.error("Помилка збереження в Firestore:", error);
res.status(500).json({ message: 'Не вдалося зберегти фото в Firestore.' });
}
});

blobStream.end(req.file.buffer);
} catch (error) {
console.error("Помилка під час обробки файлу:", error);
res.status(500).json({ message: 'Помилка завантаження файлу.' });
}
});




// Додавання нового фото
// app.post('/upload', upload.single('photo'), (req, res) => {
// const { description, decorName, price } = req.body;
Expand Down

0 comments on commit 8b2250a

Please sign in to comment.