Próbuję przesłać, a następnie uzyskać dostęp do obrazu. Przesyłanie przebiega prawidłowo, przesyłając obraz do zasobów/zdjęć, ale gdy próbuję uzyskać dostęp do obrazu z przeglądarki, takiego jak http://localhost:1337/images/image-name.jpg, daje to 404. Używam Sails.js tylko do celów zaplecza - w przypadku interfejsu API i projekt jest tworzony z - opcja bez opcji front-end. Mój front jest na AngularJS.Dostęp do przesłanego obrazu w projekcie zaplecza Sails.js
Moja funkcja wysyłania:
avatarUpload: function(req, res) {
req.file('avatar').upload({
// don't allow the total upload size to exceed ~10MB
maxBytes: 10000000,
dirname: '../../assets/images'
}, function whenDone(err, uploadedFiles) {
console.log(uploadedFiles);
if (err) {
return res.negotiate(err);
}
// If no files were uploaded, respond with an error.
if (uploadedFiles.length === 0) {
return res.badRequest('No file was uploaded');
}
// Save the "fd" and the url where the avatar for a user can be accessed
User
.update(req.userId, {
// Generate a unique URL where the avatar can be downloaded.
avatarUrl: require('util').format('%s/user/avatar/%s', sails.getBaseUrl(), req.userId),
// Grab the first file and use it's `fd` (file descriptor)
avatarFd: uploadedFiles[0].fd
})
.exec(function (err){
if (err) return res.negotiate(err);
return res.ok();
});
});
}
widzę obraz w folderze aktywa/Images - coś takiego - 54cd1fc5-89e8-477d-84e4-dd5fd048abc0.jpg
http://localhost:1337/assets/images/54cd1fc5-89e8-477d-84e4-dd5fd048abc0.jpg - daje 404
http://localhost:1337/images/54cd1fc5-89e8-477d-84e4-dd5fd048abc0.jpg - daje 404
Dziękuję bardzo. Udało mi się przesłać i uzyskać dostęp do zdjęcia po dostarczonym samouczku. Naprawdę mi pomógł. Jedną małą rzeczą, na którą należy zwrócić uwagę - podczas kopiowania przesłanego pliku z zasobów do folderu '.tmp', jeśli nie ma tam struktury folderów -' .tmp/public/images/uploads', musimy ją najpierw utworzyć lub 'fs 'błąd powoduje przerwanie aplikacji, jeśli nie zostanie przechwycony. –
Rzeczywiście! Możesz skorzystać z modułu [mkdirp] (https://www.npmjs.com/package/mkdirp) lub [fs-extra] (https://www.npmjs.com/package/fs-extra) (dla dodatkowej funkcjonalności), aby utworzyć folder, jeśli nie istnieje za pomocą pojedynczego polecenia. Lub po prostu użyj tego [dobrze uzasadnionego rozwiązania] (http://stackoverflow.com/a/21196961/1100528). – galactocalypse