Ich habe viele verfügbare Internet-Tutorials versucht, aber ich kann es immer noch nicht funktionsfähig machen. Ich benutze Multer Modul in NodeJS und ng-Datei-Upload in AngularJS. Ich habe zwei Helfer mit mehreren Einstellungen gemacht (weil ich zwei Szenarien habe und beide Uploads in verschiedene Ordner gehen müssen). Backend-Dateien befinden sich im APP/APP_BACK/-Ordner, also gehe ich im Zielpfad einen Ordner zurück und gebe APP_FRONT/images/header ein. Hier ist ein Helfer-Schnipsel (/helpers/uploadHeader.js):NodeJS & Angular Image hochladen
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, '../APP_FRONT/images/header/');
},
filename: function (req, file, callback) {
var ext = filename.slice((filename.lastIndexOf(".") - 1 >>> 0) + 2);
callback(null, file.fieldname + '-' + '.' + ext);
}
});
var upload = multer(
{storage: storage}
);
var helper = {
upload: upload
};
module.exports = helper;
Hier ist Routerdatei:
var headerHelper= require('../helpers/uploadHeader');
router.post('/header', headerHelper.upload.single('header'), function(req, res, next) {
headerHelper.upload(req, res, function(err){
if(err){
res.status(400).send(err);
console.log(err);
return;
}
res.status(200).send({ code:200, message:'Header upload successful!' });
});
});
"header" würde Name des Eingabeformular oder Schlüsselwert in Postman sein.
In Angular, I injiziert 'ngFileUpload' -Modul in app und injizierten Service 'Hochladen' in gewünschte Controller und verwendet es in uploadHeader() Funktion, die auf den Knopf innerhalb Form auf client gebunden ist:
$scope.uploadHeader = function (file) {
Upload.upload({
url: 'http://localhost:3003/upload/header',
method: 'POST',
file: file
}).then(function (response) {
console.log('Success ' + response.config.data.file.name + 'uploaded. Response: ' + response.data);
}, function (error) {
console.log('Error status: ' + error.status);
}, function (evt) {
var progressPercentage = parseInt(100.0 * evt.loaded/evt.total);
console.log('progress: ' + progressPercentage + '% ' + evt.config.data.file.name);
});
ich habe versucht, mit Postman:
Und diesen Fehler:
"Fehler: ENOENT: keine solche Datei oder das Verzeichnis, öffnen ' c: \ Benutzer \ Benutzername \ Desktop \ APP \ APP_FRONT \ images \ Headers \ header.jpg '"
Wenn ich von client versuchen, erhalte ich diese Fehler:
"Fehler: Unerwarteter Feld
bei makeError" und "Typeerror: DBG ist undefiniert"
ich Google bereits angehört, t Ich habe einige Tutorials gemacht, bin aber dabei geblieben.
"TypeError: dbg ist undefined" ist ein Mozilla Firebug Fehler – AlainIb
würden Sie Ihren 'html' Code zur Verfügung stellen? Ich glaube, da liegt der Fehler. Sind Sie sicher, dass der Wert für das 'name' Attribut' header' ist? –