I am working on a image uploading website.
User can take photo via their camera and upload.
I am testing it with my iPhone 5S
But the photo upload from iPhone display in the wrong direction on PC, and the right direction in mobile device.
in my pc:
the correct direction (the direction display in iPhone)
in my upload process, I simply do nothing to the image, and I use Express
and multer
:
var storage = multer.diskStorage({
destination: function(req, file, cb) {
cb(null, 'public/uploads');
},
filename: function(req, file, cb) {
var name = file.originalname;
var dot = name.lastIndexOf('.');
cb(null, name.slice(0, dot) + '-' + new Date().getTime() + name.slice(dot));
}
});
var upload = multer({
storage: storage,
fileFilter: function(req, file, cb) {
if (/.(png|jpg)$/.test(file.originalname)) {
cb(null, true);
} else {
cb(null, false);
}
}
});
var fileUpload = upload.single('file');
router.post('/ajaxupload', function(req, res) {
fileUpload(req, res, function(err) {
if (err) {
res.json({
success: false,
message: 'upload failed'
});
return;
}
console.log(req.file);
res.json({
success: true,
filename: req.file.path.replace(/public/, '')
});
});
});
See Question&Answers more detail:os