node.js实现上传文件功能

本文实例为大家分享了node.js上传文件的具体代码,供大家参考,具体内容如下

最近刚开始弄nond,写得不好见谅,有什么错误请指出:

首先安装node,安装步骤

这里以上传图片为例:

1、在该文件夹下生成package.json文件:

在本文件夹下打开命令行窗口(window系统,进入该文件夹按住shift然后点击鼠标右键,就可以直接选择在本文件夹中打开命令行窗口)输入:npm init

然后等有提示出来,一路Enter(懂的请无视,不懂且不想懂的一路Enter就是了),然后你就可以发现文件夹下有一个package.json文件,下面是刚生成的package.json文件内容

这里因为要用到multer、express、fs模板,所以要安装模块,fs不需要安装,可以直接引用:

安装multer:npm install multer --save

安装express:npm install express --save

然后你会发现你的文件夹下会多出一个node_modules文件,package.json里会多出这两行:

2、创建app.js文件:

var express=require('express')

var app=express()

var multer=require('multer')

var fs=require('fs')

// var upload=multer({ dest: './tmp/' })

var createFolder = function(folder){

try{

fs.accessSync(folder);

}catch(e){

fs.mkdirSync(folder);

}

};

var uploadFolder = './upload/';

createFolder(uploadFolder);

// 通过 filename 属性定制

var storage = multer.diskStorage({

destination: function (req, file, cb) {

cb(null, uploadFolder); // 保存的路径,备注:需要自己创建

},

filename: function (req, file, cb) {

// 将保存文件名设置为 字段名 + 时间戳,比如 logo-1478521468943

let suffix=file.mimetype.split('/')[1];//获取文件格式

cb(null, file.fieldname + '-' + Date.now()+'.'+suffix);

}

});

// 通过 storage 选项来对 上传行为 进行定制化

var upload = multer({ storage: storage })

app.post('/profile',upload.single('file'),function(req,res,next){

//req.body contains the text fields

console.log(req.file,'------',req.body,'-------',req.file.path);

// res.end(req.file.buffer);

// console.log(req.file.buffer.toString().length);

res.end('ok');

})

app.listen(8081);

然后在命令行窗口继续输入:node app.js

点击回车运行文件

前端的话刚好我这里有篇上传图片的小程序示例,可以测试使用

以上是 node.js实现上传文件功能 的全部内容, 来源链接: utcz.com/z/312549.html

回到顶部