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 相关文章推荐
两个多选select(multiple左右)添加、删除选项和取值实例
May 12 Javascript
javascript函数声明和函数表达式区别分析
Dec 02 Javascript
js实现简单选项卡与自动切换效果的方法
Apr 10 Javascript
浅谈Javascript实现继承的方法
Jul 06 Javascript
jQuery实现自动切换播放的经典滑动门效果
Sep 12 Javascript
js 只比较时间大小的实例
Oct 26 Javascript
总结4个方面优化Vue项目
Feb 11 Javascript
vue实现的上拉加载更多数据/分页功能示例
May 25 Javascript
vuex vue简单使用知识点总结
Aug 29 Javascript
小程序调用微信支付的方法
Sep 26 Javascript
在Vue里如何把网页的数据导出到Excel的方法
Sep 30 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
Nov 13 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
虹吸壶是谁发明的?煮出来的咖啡好喝吗
2021/03/04 冲泡冲煮
php中jpgraph类库的使用介绍
2013/08/08 PHP
PHP获取毫秒级时间戳的方法
2015/04/15 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
Javascript调试工具(下载)
2007/01/09 Javascript
javascript两段代码,两个小技巧
2010/02/04 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
从URL中提取参数与将对象转换为URL查询参数的实现代码
2012/01/12 Javascript
jquery中each遍历对象和数组示例
2014/08/05 Javascript
JavaScript从数组中删除指定值元素的方法
2015/03/18 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
Javascript实现信息滚动效果
2017/05/18 Javascript
详解微信小程序用定时器实现倒计时效果
2019/04/30 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
前端插件之Bootstrap Dual Listbox使用教程
2019/07/23 Javascript
vue相关配置文件详解及多环境配置详细步骤
2020/05/19 Javascript
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
[01:01:18]VP vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python实现识别手写数字 python图像识别算法
2020/03/23 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
提升Python效率之使用循环机制代替递归函数
2019/07/23 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
python实现淘宝购物系统
2019/10/25 Python
Python 元组拆包示例(Tuple Unpacking)
2019/12/24 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
2020/01/13 Python
在spyder IPython console中,运行代码加入参数的实例
2020/04/20 Python
基于Python下载网络图片方法汇总代码实例
2020/06/24 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
2021/02/07 Python
Kidsroom台湾:来自德国的婴儿用品
2017/12/11 全球购物
说出数据连接池的工作机制是什么?
2013/04/19 面试题
山海经纬软件测试笔试题和面试题
2013/04/02 面试题
家长写给老师的建议书
2014/03/13 职场文书
超市优秀员工获奖感言
2014/08/15 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
卖房协议书样本
2014/10/30 职场文书