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 相关文章推荐
jQuery代码优化 事件委托篇
Nov 01 Javascript
JS保存、读取、换行、转Json报错处理方法
Jun 14 Javascript
JavaScript中输出标签的方法
Aug 27 Javascript
Flexigrid在IE下不显示数据的有效处理方法
Sep 04 Javascript
理解javascript函数式编程中的闭包(closure)
Mar 08 Javascript
jQuery文件上传控件 Uploadify 详解
Jun 20 Javascript
Bootstrap php制作动态分页标签
Dec 23 Javascript
Angular使用$http.jsonp发送跨站请求的方法
Mar 16 Javascript
基于angular实现三级联动的生日插件
May 12 Javascript
基于node.js制作简单爬虫教程
Jun 29 Javascript
js中值引用和地址引用实例分析
Jun 21 Javascript
JS浏览器BOM常见操作实例详解
Apr 27 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
php实现用户在线时间统计详解
2011/10/08 PHP
PHP静态文件生成类实例
2014/11/29 PHP
浅谈php7的重大新特性
2015/10/23 PHP
PHP的Json中文处理解决方案
2016/09/29 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
详解EventDispatcher事件分发组件
2016/12/25 PHP
PHP容器类的两种实现方式示例
2019/07/24 PHP
js网页实时倒计时精确到秒级
2014/02/10 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
浅析webapp框架AngularUI的demo
2014/12/21 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
利用原生js实现html5小游戏之打砖块(附源码)
2018/01/03 Javascript
微信小程序之圆形进度条实现思路
2018/02/22 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
vuejs简单验证码功能完整示例
2019/01/08 Javascript
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
判断“命令按钮”是否被鼠标单击详解
2019/07/31 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
JS数组方法concat()用法实例分析
2020/01/18 Javascript
vue 数据双向绑定的实现方法
2021/03/04 Vue.js
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
Python的Django REST框架中的序列化及请求和返回
2016/04/11 Python
详解字典树Trie结构及其Python代码实现
2016/06/03 Python
Python探索之修改Python搜索路径
2017/10/25 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
python已协程方式处理任务实现过程
2019/12/27 Python
Python requests设置代理的方法步骤
2020/02/23 Python
python程序文件扩展名知识点详解
2020/02/27 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
德国高性价比网上药店:medpex
2017/07/09 全球购物
广州某公司软件工程师面试题
2014/12/22 面试题
公司总经理工作职责管理办法
2014/02/28 职场文书
如何写辞职书
2015/02/26 职场文书