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中简单实现Javascript Promise机制的实例
Dec 06 NodeJs
使用nodejs爬取前程无忧前端技能排行
May 06 NodeJs
详解nodeJS之路径PATH模块
May 31 NodeJs
nodejs基于WS模块实现WebSocket聊天功能的方法
Jan 12 NodeJs
nodejs实现解析xml字符串为对象的方法示例
Mar 14 NodeJs
nodejs连接mysql数据库及基本知识点详解
Mar 20 NodeJs
nodejs express配置自签名https服务器的方法
May 22 NodeJs
nodejs微信开发之自动回复的实现
Mar 17 NodeJs
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
May 30 NodeJs
关于NodeJS中的循环引用详解
Jul 23 NodeJs
Nodejs中使用puppeteer控制浏览器中视频播放功能
Aug 26 NodeJs
nodejs实现UDP组播示例方法
Nov 04 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
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
javascript css float属性的特殊写法
2008/11/13 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
2010/07/13 Javascript
情人节之礼 js项链效果
2012/02/13 Javascript
基于jquery的时间段实现代码
2012/08/02 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
举例讲解jQuery中可见性过滤选择器的使用
2016/04/18 Javascript
Angular.js中angular-ui-router的简单实践
2017/07/18 Javascript
使用canvas进行图像编辑的实例
2017/08/29 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
使用D3.js+Vue实现一个简单的柱形图
2018/08/05 Javascript
Vue快速实现通用表单验证功能
2019/12/05 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
Python实现提取文章摘要的方法
2015/04/21 Python
Python3里的super()和__class__使用介绍
2015/04/23 Python
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
简单了解python高阶函数map/reduce
2019/06/28 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
Python 基于jwt实现认证机制流程解析
2020/06/22 Python
详解CSS的border边框属性及其在CSS3中的新特性
2016/05/10 HTML / CSS
英国名牌服装购物网站:OD’s Designer
2019/09/02 全球购物
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
Belstaff英国官方在线商店:Belstaff.co.uk
2021/02/09 全球购物
Whistles官网:英国女装品牌
2020/08/14 全球购物
服装设计专业毕业生推荐信
2013/11/09 职场文书
医院办公室主任职责
2013/12/29 职场文书
文秘人员工作职责
2014/01/31 职场文书
《我的伯父鲁迅先生》教学反思
2014/02/12 职场文书
工程学毕业生自荐信
2014/06/14 职场文书
导游词范文
2015/02/13 职场文书
房租涨价通知
2015/04/23 职场文书
刑事法律意见书
2015/06/04 职场文书