【问题标题】:can not upload the file with its extension and original path name using Multer and Node.js无法使用 Multer 和 Node.js 上传带有扩展名和原始路径名的文件
【发布时间】:2016-01-18 05:23:26
【问题描述】:

我在使用 Node.js 中的 Multer 模块上传文件时遇到一个问题。我在下面解释我的代码。

server.js:

var multer = require('multer');
var upload = multer({ dest: './upload/' });
var cpUpload = upload.fields([{ name: 'images', maxCount: 1}]);
var app=express();
var server=http.createServer(app);
var admin=require('./route/route.js');
app.post('/uploadAll',cpUpload,function(req, res, next){
    console.log('fiels',req);
})

supplierController.js:

var file=fileURL;
var curnum=(Math.random() * new Date().getTime()).toString(36).replace(/\./g, '');
var newPicpath=curnum+"_"+ file.name;
file.name=newPicpath;
console.log('file',file);
$scope.upload=Upload.upload({
    url: '/uploadAll',
    method:'POST',
    data:{
            images: file,
        },
    headers : {
             'Content-Type': 'multipart/form-data'
        },

}).success(function(data, status, headers, config) {
}).error(function(data, status) {
        console.log('err file',data);
})

在控制台消息中,我正在获取以下文件数据。

Blob
$ngfName:"vse123ertgf_1.jpg"
name:"vse123ertgf_1.jpg"
size:8607
type:"image/jpeg"

在这里您可以检查我的文件名是否包含一个随机数。当我上传文件时,文件会上传到给定文件夹中,但使用另一个随机数(i.e-75149c6770ea216b5ad8aafa7698539d)作为其名称且没有扩展名(@ 987654325@)。这里我也在客户端的错误函数中得到错误响应。我正在使用ng-file-upload 上传文件。这里我需要文件应该使用其原始名称上传到所需的文件夹中请帮我解决这个问题。

【问题讨论】:

    标签: angularjs node.js multer ng-file-upload


    【解决方案1】:

    萨提亚。您面临的问题非常普遍。请阅读以下post 以获得一些美丽的见解。我有同样的问题,我用这篇文章解决了它。如需进一步问题,请在下方评论,将为您提供帮助。

    【讨论】:

    • 好的,我会试试这个并确认你。谢谢。
    • 这行得通吗?如果请标记答案如果没有,请提出进一步的疑问。
    猜你喜欢
    • 2017-11-15
    • 2015-12-15
    • 2023-04-08
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    相关资源
    最近更新 更多