node+express+axios实现单文件上传功能

node+express+axios实现单文件上传功能

本文实例为大家分享了node+express+axios实现单文件上传的具体代码,供大家参考,具体内容如下

1.安装依赖

在node服务端安装依赖

cnpm i multer --save

2.后端代码

var express = require('express'); var router = express.Router(); //上传商品图片 var multer = require('multer'); var fs = require('fs'); var path = require('path');  //使用表单上传 var upload = multer({   storage: multer.diskStorage({     //设置文件存储位置      destination: function(req, file, cb) {        let date = new Date();        let year = date.getFullYear();        let month = (date.getMonth() + 1).toString().padStart(2, '0');        let day = date.getDate();        //直接从根目录开始找        let dir = "./public/uploads/" + year + month + day;        //判断目录是否存在,没有则创建        if (!fs.existsSync(dir)) {          fs.mkdirSync(dir, {            recursive: true          });        }        //dir就是上传文件存放的目录        cb(null, dir);      },      //设置文件名称      filename: function(req, file, cb) {        let fileName = file.fieldname + '-' + Date.now() + path.extname(file.originalname);        //fileName就是上传文件的文件名        cb(null, fileName);      }   }) })     //接口地址为:admin/upload/img   根据自己的路由配置来写  router.post('/img',upload.single("imgFile") ,function(req,res,next){     console.log(req);     res.json({       file: req.file     })  }) module.exports = router;

3.前端代码

<template>   <div>         <div>             <img :src="url" width="100px">              <!-- input type属性为file,限制上传为文件 -->             <input type="file" @change="uploadImg($event)">         </div>   </div> </template> <script> export default {     data(){         return{             url : ''         }     },     methods:{         uploadImg(e){             let file = e.target.files[0];             // console.log(file);             //限制文件大小             // if(file.size > 10240){             //     alert('文件大小过大');             // }             //限制文件类型             if(!file.type.startsWith('image')){                 alert('只能上传图片');                 return             }             let formData = new FormData();             formData.set('imgFile',file);             this.$axios.post(                 'http://127.0.0.1:3000/admin/upload/img',                 formData                 ).then(req => {                     // console.log(req.data.file.path);                     let path = req.data.file.path;   //获取文件路径                     // path.indexOf('\\');                     let imgUrl = path.substring(path.indexOf('\\'))                     // console.log(imgUrl);                     //   拿到的图片路径为\uploads\20201119\imgFile-1605779882999.webp                     this.url = 'http://127.0.0.1:3000'+imgUrl;   //我们最后要在服务器端拿到图片,要拼接上自己的服务器的地址                 })         }     } } </script> <style> </style>

推荐阅读

    node 服务器端启动

    node 服务器端启动,远程桌面,设置为,场景: 根据资料学习,制作了一个web聊天室的应用,部署在windows服务器上,运行正常,当关闭远程桌面,运营node

    01-Express-邂逅

    01-Express-邂逅,函数,路由,1.什么是Express?Express是一个基于NodeJS的Web Server开发框架, 能够帮助我们快速的搭建Web服务器2.为什么需

    创业做网站选择用node好还是php

    创业做网站选择用node好还是php,语言,页面,如果你所开发的是一个PHP网站的前端页面或模板,PHP和Python语言都相对比较简单,所以虽然PHP语

    1-14node中的commonjs规范的实现

    1-14node中的commonjs规范的实现,模块,文件,node中的模块 1.内置模块、核心模块 2.第三方模块 commander/co 3.文件模块es6Module“静态”

    node express返回json数据给前端

    node express返回json数据给前端,上传,格式,请注意,使用res.json()的格式1.前面不能添加 res.writeHead(200, {‘content-type‘: ‘text/

    电脑文件在线传输|在线文件上传

    电脑文件在线传输|在线文件上传,,1. 在线文件上传上传电脑的方法:1、如果手机百度云下载的文件保存在手机中,只需要将文件上传到苹果云端上,

    nodejs如何升级到最新稳定版本

    nodejs如何升级到最新稳定版本,版本,安装,命令,最新,升级,最新版本,Node.js是一种开源的、跨平台的JavaScript运行环境,它使用了Google V8引擎来

    一文带你深入了解Node.js(图文详解)

    一文带你深入了解Node.js(图文详解),模块,中间件,路由,描述,插入图片,服务器,本篇文章通过超多代码和图解来带大家深入解析Node.js,主要内容包括模

    怎么删除nodejs

    怎么删除nodejs,删除,卸载,选择,鼠标,教程,文件,删除nodejs的方法:1、打开“控制面板”,点击“卸载程序”;2、在“卸载或更改程序”界面,找到并选中

    nodejs怎么查看版本(三种方法)

    nodejs怎么查看版本(三种方法),版本,版本信息,查看,方法,命令行,系统,Node.js 是一个非常流行的开源 JavaScript 运行时环境,它可以运行在多个平台

    nodejs怎么安装?详细步骤介绍

    nodejs怎么安装?详细步骤介绍,安装,模块,输入,命令,系统,版本,随着互联网的不断发展,越来越多的前端开发者开始学习 Node.js。Node.js 它是一个基