ajax +NodeJS 实现图片上传实例


Posted in NodeJs onJune 06, 2017

前台用jquery的ajax发请求,后台用NodeJS 的multer模块实现图片上传。这个demo给我的感悟是一定要自己能实现出来,而不是看了别人写好就直接“拿来”用

ajax +NodeJS 实现图片上传实例

note(注意)

大家先在public目录下创建一个名为uploads的文件夹,这个文件夹是用来保存你上传过的图片

安装multer模块:

npm i -S multer

code(代码)

1.app.js

const express = require('express');
const multer = require('multer');
const path = require('path');
const app = express();

//所有请求过来,都去项目当前的public目录下寻找所请求的文件,找到就返回
app.use(express.static('./public'));

//选择diskStorage存储
const storage = multer.diskStorage({
 destination: function (req, file, cb) {
  cb(null, path.resolve('public/uploads'));
 },
 filename: function (req, file, cb) {
  cb(null, Date.now() + path.extname(file.originalname));//增加了文件的扩展名
 }
});

const upload = multer({storage: storage});

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

 res.send({
  err: null,
  //filePath:就是图片在项目中的存放路径
  filePath: 'uploads/' + path.basename(req.file.path)
 });
});

app.listen(3000, function () {
 console.log("app is listening 3000 port");
});

2.index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script type="text/javascript" src="js/jquery-3.1.0.min.js"></script>

</head>
<body>
<form class="form-horizontal" enctype='multipart/form-data' method='post' action='javascript:;'>
  <input type="file" id="choose"/>
  <button onclick="handle()">上传</button>
  <img class="newImg"/>
</form>

<script>
  function handle() {
   //获取上传的File对象,此处是一张图片对象
    let file = document.getElementById("choose").files[0];
    let formData = new FormData();
    formData.append("avatar", file);//设置key为avartar,value为上述的File对象
    $.ajax({
      type: 'POST',
      url: '/profile',
      data: formData,
      processData: false,
      success: function (data) {
        $(".newImg").attr("src", data.filePath);//上传成功则图片显示
      },
      error: function (err) {
        console.log(err.message);
      }
    })
  }
</script>
</body>
</html>

demo地址在这

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

NodeJs 相关文章推荐
nodejs之请求路由概述
Jul 05 NodeJs
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
Sep 26 NodeJs
nodejs下打包模块archiver详解
Dec 03 NodeJs
NodeJS学习笔记之Connect中间件应用实例
Jan 27 NodeJs
详解nodejs 文本操作模块-fs模块(二)
Dec 22 NodeJs
图片上传之FileAPI与NodeJs
Jan 24 NodeJs
详解NODEJS的http实现
Jan 04 NodeJs
nodejs读取并去重excel文件
Apr 22 NodeJs
NodeJS搭建HTTP服务器的实现步骤
Oct 12 NodeJs
nodejs实现聊天机器人功能
Sep 19 NodeJs
Nodejs技巧之Exceljs表格操作用法示例
Nov 06 NodeJs
nodejs使用Sequelize框架操作数据库的实现
Oct 21 NodeJs
详解Nodejs之静态资源处理
Jun 05 #NodeJs
nodejs集成sqlite使用示例
Jun 05 #NodeJs
详解nodeJS之二进制buffer对象
Jun 03 #NodeJs
深入理解Nodejs Global 模块
Jun 03 #NodeJs
nodejs socket实现的服务端和客户端功能示例
Jun 02 #NodeJs
NodeJs使用Mysql模块实现事务处理实例
May 31 #NodeJs
基于nodejs 的多页面爬虫实例代码
May 31 #NodeJs
You might like
php导出生成word的方法
2015/12/25 PHP
PHP 序列化和反序列化函数实例详解
2020/07/18 PHP
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
extjs两个tbar问题探讨
2013/08/08 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
javascript将异步校验表单改写为同步表单
2015/01/27 Javascript
如何改进javascript代码的性能
2015/04/02 Javascript
nodejs简单实现操作arduino
2016/09/25 NodeJs
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
Angular 4.x 路由快速入门学习
2017/05/03 Javascript
Vue.js如何实现路由懒加载浅析
2017/08/14 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
2017/09/03 jQuery
详解使用vuex进行菜单管理
2017/12/21 Javascript
jQuery+CSS实现的table表格行列转置功能示例
2018/01/08 jQuery
Postman内建变量常用方法实例解析
2020/07/28 Javascript
Postman无法正常返回结果问题解决
2020/08/28 Javascript
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
[54:10]完美世界DOTA2联赛PWL S2 Magma vs FTD 第二场 11.29
2020/12/03 DOTA
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
Python爬虫实战之12306抢票开源
2019/01/24 Python
对Python3使运行暂停的方法详解
2019/02/18 Python
python 实现aes256加密
2020/11/27 Python
css3 实现滚动条美化效果的实例代码
2021/01/06 HTML / CSS
HTML5未来发展趋势
2016/02/01 HTML / CSS
阿联酋网上花店:Ferns N Petals
2018/02/14 全球购物
大一新生军训时的自我评价分享
2013/12/05 职场文书
门卫人员岗位职责
2013/12/24 职场文书
期末自我鉴定
2014/01/23 职场文书
会计专业求职信范文
2014/03/16 职场文书
不错的求职信范文
2014/07/20 职场文书
政协调研汇报材料
2014/08/15 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
2014年大学生工作总结
2014/11/20 职场文书
2014年工程师工作总结
2014/11/25 职场文书
员工辞退通知书
2015/04/17 职场文书
详解分布式系统中如何用python实现Paxos
2021/05/18 Python