Ich versuche, einen Upload durchzuführen und dann auf das Bild zuzugreifen. Der Upload läuft gut, das Bild wird in Assets/Bilder hochgeladen, aber wenn ich versuche, das Bild vom Browser aus zu öffnen wie http://localhost:1337/images/image-name.jpg, gibt es mir 404. Ich benutze Sails.js nur für Backendzwecke - für API und das Projekt wird mit erstellt - keine Front-End-Option Mein Frontend ist auf AngularJS.Greifen Sie auf hochgeladenes Bild in Sails.js Backend-Projekt zu
Meine Upload-Funktion:
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();
});
});
}
ich das Bild im assets/images Ordner sehen - so etwas wie diese - 54cd1fc5-89e8-477d-84e4-dd5fd048abc0.jpg
http://localhost:1337/assets/images/54cd1fc5-89e8-477d-84e4-dd5fd048abc0.jpg - gibt 404
http://localhost:1337/images/54cd1fc5-89e8-477d-84e4-dd5fd048abc0.jpg - gibt 404
Vielen Dank. Ich habe es geschafft, einen Upload zu machen und auf das Bild nach dem Tutorial zuzugreifen. Es hat mir wirklich geholfen. Nur eine kleine Sache zu beachten - beim Kopieren der hochgeladenen Datei von Assets in '.tmp'-Ordner, wenn die Ordnerstruktur -' .tmp/public/images/uploads 'dort nicht vorhanden ist, müssen wir es zuerst oder 'fs erstellen 'Fehler bricht die Anwendung, wenn nicht gefangen. –
In der Tat! Sie können das Modul [mkdirp] (https://www.npmjs.com/package/mkdirp) oder [fs-extra] (https://www.npmjs.com/package/fs-extra) verwenden (für zusätzliche Funktionen)) um einen Ordner zu erstellen, wenn dieser nicht mit einem einzigen Befehl existiert. Oder verwenden Sie einfach diese [gut durchdachte Lösung] (http://stackoverflow.com/a/21196961/1100528). – galactocalypse