Sto provando a fare un upload e quindi accedere all'immagine. Il caricamento sta andando bene, caricando l'immagine in risorse/immagini, ma quando provo ad accedere all'immagine dal browser come http://localhost:1337/images/image-name.jpg mi dà 404. Uso Sails.js solo per scopi di backend - per API e il progetto è stato creato con Opzione --no-front-end. La mia front end è su AngularJS.Accedi all'immagine caricata nel progetto di backend Sails.js
La mia funzione di upload:
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();
});
});
}
vedo l'immagine nella cartella assets/images - una cosa del genere - 54cd1fc5-89e8-477d-84e4-dd5fd048abc0.jpg
http://localhost:1337/assets/images/54cd1fc5-89e8-477d-84e4-dd5fd048abc0.jpg - dà 404
http://localhost:1337/images/54cd1fc5-89e8-477d-84e4-dd5fd048abc0.jpg - dà 404
Grazie mille. Sono riuscito a fare un upload e ad accedere alla foto seguendo il tutorial che hai fornito. Mi ha davvero aiutato. Solo una piccola cosa da notare - quando copi il file caricato dalle risorse nella cartella '.tmp', se la struttura delle cartelle -' .tmp/public/images/uploads 'non è presente, dobbiamo prima crearla o 'fs 'l'errore interrompe l'applicazione se non viene rilevato. –
Davvero! Puoi utilizzare il modulo [mkdirp] (https://www.npmjs.com/package/mkdirp) o [fs-extra] (https://www.npmjs.com/package/fs-extra) (per funzionalità aggiuntive) per creare una cartella se non esiste utilizzando un singolo comando. O semplicemente usa questa [soluzione ben ragionata] (http://stackoverflow.com/a/21196961/1100528). – galactocalypse