必要:首先multer模块应用前提是在HTML的form表单

标签内设置属性enctype=”multipart/form-data”是必须的,这样才可以上传文件,方式为post。

<form action="/getdata" method="post" enctype="multipart/form-data">...
</form>

其次 使用npm命令 下载multer模块:

$npm  install multer -save

在项目js中 添加引用:

var multer = require('multer');var upload = multer({dest:'uploads/'});app.use(multer({dest:"./uploads"}).array("file"));

dest:目的地   包括后面的uploads文件夹可以自己定义 默认路径是整个项目文件夹  

array()内是你要上传的file类型input标签的name名称  

<input type="file" id="exampleInputFile" name="file">

我们回到路由中(默认index.js/user.js)把multer模块引用进去

 var express = require('express');var router = express.Router();
    var multer = require('multer');var fs = require('fs');var path = require('path');var mysql = require('mysql')var upload = multer({ dest: 'uploads/' });

接下来我们一步一步的分析代码:

  router.post('/getdata',function(req,res){
//设置表单提交的路由地址,并且接收req/返回res给客户端的操作console.log(req.body);var name = req.body.name;var email = req.body.email;
//post传输方法要用bodyconsole.log(req.files);var load=path.join(__dirname,'..');console.log(load);var fname=req.files[0].filename;//获取上传文件的名字var oname=req.files[0].originalname;//获取上传文件的原始名字
//var load=path.join(__dirname,'..');返回上一层的地址这里用变量load接收了
 fs.readFile(load+'/uploads/'+fname,function(err,data){
//文件上传后默认是一堆字符串的名字并且没有后缀名称的未知格式文件,这里我们要用req.files查看原始文件的数据并且读取,待读取成功后进行下一步操作console.log(data);fs.writeFile('./public/uploads/'+oname,data,function(err,data){
//写入文件if(!err){        console.log('写入成功!')}else{console.log(err);}})})//链接数据库并且写入数据内容(选看)var connection = mysql.createConnection({host:'127.0.0.1',user:'root',password:'root',database:'web5'})connection.connect(function(err){if(err){console.log(err)}});connection.query('insert into porject(name,email,files)values(?,?,?)',[name,email,oname],function(err,data){if(!err){res.render('getdata',{title:'文件已保存至服务器'})}})connection.end();})

 不清楚可以下面留言交流

  

  

  

转载于:https://www.cnblogs.com/AzukiAzusa/p/7250727.html

Node.js中文件上传与multer模块的应用相关推荐

  1. node.js实现formdata上传文件

    node.js实现formdata上传文件 1.关于formdata XMLHttpRequest Level 2 添加了一个新的接口--FormData.利用 FormData 对象,我们可以通过 ...

  2. 使用Node.js express 开发上传文件/图片api接口

    我是傲夫靠斯,欢迎关注我的公众号[前端工程师的自我修养],每天更新. 今天我们来搞一个Node.js Express的上传文件功能,我使用了busboy这个库. Busboy是一个基于事件的文件流解析 ...

  3. vue上传zip文件到服务器,vue.js zip文件上传

    vue.js zip文件上传 内容精选 换一换 开发过程中,您有任何问题可以在github上提交issue,或者在华为云对象存储服务论坛中发帖求助.接口参考文档详细介绍了每个接口的参数和使用方法.在O ...

  4. html js文件域val,js实现文件上传表单域美化特效

    一款效果非常时尚的文件上传表单域美化特效,下面给出制作的简要教程. 先上几个效果饱饱眼福: 使用方法 这些文件上传域的美化使用的方法都是隐藏原生的元素,然后使用一个元素来制作美化效果. @H_502_ ...

  5. layUI框架中文件上传前后端交互及遇到的相关问题

    下面我将讲述一下我在使用layUI框架中文件上传所遇到的问题: 前端jsp页面: <div class="layui-form-item"> <label cla ...

  6. js如何上传大文件到服务器,js将文件上传到远程服务器

    js将文件上传到远程服务器 内容精选 换一换 将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式.本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows云 ...

  7. php 美化js文件,js实现文件上传表单域美化特效_javascript技巧

    一款效果非常时尚的文件上传表单域美化特效,下面给出制作的简要教程. 先上几个效果饱饱眼福: 使用方法 这些文件上传域的美化使用的方法都是隐藏原生的元素,然后使用一个元素来制作美化效果. HTML结构 ...

  8. php ajaxfileupload.js 使用,ajaxfileupload.js实现文件上传(附步骤代码)

    这次给大家带来ajaxfileupload.js实现文件上传(附步骤代码),ajaxfileupload.js实现文件上传的注意事项有哪些,下面就是实战案例,一起来看一下. AjaxUpLoad.js ...

  9. php处理html5文件上传代码,HTML5中文件上传的代码

    这篇文章给大家分享的内容是关于HTML5中文件上传的代码,有一定的参考价值,有需要的朋友可以从参考一下,希望对你有所帮助.XHR2上传二进制文件 html代码: javascript代码:functi ...

最新文章

  1. PHP_常用字符串处理函数
  2. c++新特性11 (11)unique_ptr
  3. 不一样的思路,hosts文件在Mysql主从中的应用
  4. JavaScript实现TwoQueues缓存模型
  5. Oracle Explain Plan,hint解释与示例
  6. 2017双11技术揭秘—分布式缓存服务Tair的热点数据散列机制
  7. 一个STM32编译Makefile模板
  8. 如何使用泛型在新的可空上下文中启动健壮的C#项目?
  9. Iperf 源代码分析(四)
  10. jQuery使用总结 - jQuery组成和主要功能 1/4
  11. Java设计模式——装饰器模式
  12. 随机过程之马尔科夫链
  13. video-js rtmp直播、this .el_vjs_getproperty问题、多个rtmp播放、可用rtmp地址
  14. linux解决笔记本pwm背光,担心PWM调光屏幕闪瞎眼?联想这些ThinkPad笔记本要注意...
  15. html简单的折叠菜单
  16. calibre如何使用邮件推送电子书
  17. Spring Cloud Gateway(一)为什么用网关、能做什么、为什么选择Gateway、谓词工厂、过滤器配置
  18. 用计算机写文章 单元备课,备课写教案
  19. 仪表板 ajax实例,CQD 开发示例 - Skype for Business Server 2015 | Microsoft Docs
  20. 基于百度编辑器Ueditor的二次开发

热门文章

  1. linux mint 相关环境配置
  2. 【 Makefile 编程基础之三】详解 Makefile 变量的定义规则使用!
  3. Jquery调用webService的四种方法
  4. Silverlight学习笔记之使用TranslateTransform控制对象位置
  5. 【译】保护 Consul 在特定设置中免受 RCE 风险的影响
  6. 前端工程化系列[02]-Grunt构建工具的基本使用
  7. 谈谈-this与super
  8. 给Qt程序加上版本信息
  9. 【POJ1144】Network
  10. [转]解读ASP.NET 5 MVC6系列(7):依赖注入