node.js实现上传文件功能


Posted in Javascript onJuly 15, 2019

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

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

首先安装node,安装步骤

这里以上传图片为例:

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

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

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

node.js实现上传文件功能

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

安装multer:npm install multer --save

安装express:npm install express --save

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

node.js实现上传文件功能

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

点击回车运行文件

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 中的事件教程
Apr 05 Javascript
获取URL地址中的文件名和参数的javascript代码
Sep 02 Javascript
ie与ff下的event事件使用介绍
Nov 25 Javascript
javascript控制在光标位置插入文字适合表情的插入
Jun 09 Javascript
基于bootstrap实现广告轮播带图片和文字效果
Jul 22 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&”)
Dec 23 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
Dec 29 Javascript
vue中用动态组件实现选项卡切换效果
Mar 25 Javascript
js实现随机数字字母验证码
Jun 19 Javascript
基于Vue实例对象的数据选项
Aug 09 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
Sep 16 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
Aug 17 Javascript
js canvas实现5张图片合成一张图片
Jul 15 #Javascript
js使用文件流下载csv文件的实现方法
Jul 15 #Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
Jul 15 #Javascript
微信小程序开发技巧汇总
Jul 15 #Javascript
微信小程序中如何计算距离某个节日还有多少天
Jul 15 #Javascript
微信小程序基础教程之worker线程的使用方法
Jul 15 #Javascript
使用vue-router在Vue页面之间传递数据的方法
Jul 15 #Javascript
You might like
一个可以找出源代码中所有中文的工具
2006/10/25 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
解决PhpStorm64不能启动的问题
2020/06/20 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
ExtJS Window 最小化的一种方法
2009/11/18 Javascript
google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
2011/04/24 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
2014/03/06 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
js以分隔符分隔数组中的元素并转换为字符串的方法
2016/11/16 Javascript
Bootstrap栅格系统简单实现代码
2017/03/06 Javascript
javascript+html5+css3自定义提示窗口
2017/06/21 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
js实现的格式化数字和金额功能简单示例
2019/07/30 Javascript
微信小程序事件流原理解析
2019/11/27 Javascript
JS document对象简单用法完整示例
2020/01/14 Javascript
js最全的数组的降维5种办法(小结)
2020/04/28 Javascript
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
Python批量按比例缩小图片脚本分享
2015/05/21 Python
Python删除windows垃圾文件的方法
2015/07/14 Python
Django跨域请求CSRF的方法示例
2018/11/11 Python
python自定义线程池控制线程数量的示例
2019/02/22 Python
详解Python基础random模块随机数的生成
2019/03/23 Python
python图形开发GUI库pyqt5的基本使用方法详解
2020/02/14 Python
Python进程的通信Queue、Pipe实例分析
2020/03/30 Python
举例讲解Python装饰器
2020/12/24 Python
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
2019年分享net面试的经历和题目
2016/08/07 面试题
应届生体育教师自荐信
2013/10/03 职场文书
人与自然的观后感
2015/06/18 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书