嘗試了很多可用的互聯網教程,但我仍然無法使其功能。我在NodeJS中使用多模模塊,在AngularJS中使用ng-file-upload。我用multer設置了兩個助手(因爲我有兩個場景,兩個上傳都必須到不同的文件夾)。後端文件位於APP/APP_BACK /文件夾中,因此在目標路徑中,我返回一個文件夾並輸入APP_FRONT/images/header。這裏是一個輔助片斷(/helpers/uploadHeader.js):NodeJS&Angular Image上傳
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;
這裏是路由器的文件:
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!' });
});
});
「報頭」。將輸入的形式或郵差密鑰值的名稱。
在角,我在應用注入「ngFileUpload」模塊,並注射「上傳」服務到所需的控制器,並用它內部uploadHeader(),其被結合在按鈕內部表格上客戶機側功能:
$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);
});
我試圖與郵差:
而得到這個錯誤:
「錯誤:ENOENT:沒有這樣的文件或目錄,打開' C:\ Users \用戶名\桌面\ APP \ APP_FRONT \影像\頭\ header.jpg '」
當我從客戶方嘗試,我得到這些錯誤:
「錯誤:意外現場
在makeError」 和 「類型錯誤:DBG是未定義」
我已經諮詢了谷歌,T參加了一些教程,但陷入了這個問題。
「TypeError:dbg is undefined」是一個mozilla螢火蟲錯誤 – AlainIb
你會提供你的'html'代碼嗎?我相信那裏存在錯誤。你確定'name'屬性的值是'header'嗎? –