Skip to content

Instantly share code, notes, and snippets.

@ahmadwaliesipick
Created May 21, 2018 08:03
Show Gist options
  • Save ahmadwaliesipick/501efc1e4b6f961fee1b56e62ec652c0 to your computer and use it in GitHub Desktop.
Save ahmadwaliesipick/501efc1e4b6f961fee1b56e62ec652c0 to your computer and use it in GitHub Desktop.
file upload
var File = require('../../models/file.js');
var MapDrawing = require('../../models/mapDrawing.js');
const UPLOAD_PATH = 'uploads';
exports.uploadFile = async (req, res) => {
try {
console.log("upload file: " + req.file.filename);
File.create({
fileName: req.file.filename.replace(".sqlite", ""),
originalName: req.file.originalname.replace(".sqlite", ""),
filePath: UPLOAD_PATH + "/" + req.file.filename.replace(".sqlite", "")
});
var featureCollections = {
userName: req.body.userName,
trekFolder: req.body.trekFolder,
trekName: req.body.trekName,
type: req.body.type,
basemapType: req.body.basemapType,
imageUrl: req.body.imageUrl,
shareTrek: req.body.shareTrek
};
MapDrawing.findOneAndUpdate({
_id: req.body.id,
userName: req.body.userName,
trekName: req.body.trekName
}, featureCollections, {
upsert: true
}, function (err) {
if (err) {
return res.status(500).json({
responseCode: -1,
responseText: err.message,
payload: {}
});
}
return res.status(200).json({
responseCode: 1,
responseText: "upload successfully",
payload: {
fileName: req.file.filename.replace(".sqlite", ""),
originalName: req.file.originalname.replace(".sqlite", ""),
filePath: UPLOAD_PATH + "/" + req.file.filename.replace(".sqlite", "")
}
});
});
} catch (err) {
return res.status(400).json({
responseCode: -1,
responseText: err.message,
payload: {}
});
}
};
exports.downloadFile = function (req, res) {
console.log('get file:' + req.query.fileName);
var fileName = req.query.fileName.replace(".sqlite", "");
if (!fileName) {
return res.status(400).json({
responseCode: -1,
responseText: "userName or fileName must not empty",
payload: {}
});
}
File.find({
originalName: fileName
}).sort({
createdAt: -1 //Sort by Date Added DESC
}).exec(function (err, file) {
if (err) {
return res.status(500).json({
responseCode: -1,
responseText: err.message,
payload: {}
});
}
if (file.length <= 0) {
return res.status(400).json({
responseCode: -1,
responseText: "file not found",
payload: {}
});
}
res.setHeader('Content-disposition', 'attachment; filename=' + file[0].originalName);
res.download(file[0].filePath, file[0].originalName);
})
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment