亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

node之本地服務器圖片上傳的方法示例

2019-11-19 11:56:54
字體:
來源:轉載
供稿:網友

在自己做一個簡單的后臺管理系統時,用的是node作本地數據庫,然后用了Element-ui的upload組件來實現圖片的上傳,中間有遇到那么點小坑,這里記錄下,比較坑的一點就是,不知道文件的命名不能帶空格,然后改了好久

1.index.vue文件

這里的話,就是簡單點的使用圖形界面框架Element-ui的上傳組件,然后,action就是服務器端的地址,我這里使用了代理,將localhost:8080代理到你使用node作為服務器的地址就可以了

<template>  <div class="avatar">   <img    :src="avatar?avatar:defaultImg"   />  </div>  <el-upload   class="upload-demo"   drag   action="http://localhost:8080/api/upload"   :show-file-list="false"   :on-success="uploadImgSuccess"  >   <i class="el-icon-upload"></i>   <div class="el-upload__text">將文件拖到此處,或<em>點擊上傳</em></div>  </el-upload></template><script>import defaultImg from '@/assets/img/avatar.png'export default{  data() {    return {      avatar: ''    }  },  methods: {    uploadImgSuccess(res) {      this.avatar = res.result.url;    }  }}</script>

2.代理文件

我這里使用的是vue-cli3腳手架來搭建的項目,所以,自己在項目的根目錄下創建一個vue.config.js來做一些配置

module.exports = { devServer: {  port: 8080,  headers: {  },  inline: true,  overlay: true,  stats: 'errors-only',  proxy: {   '/api': {    target: 'http://127.0.0.1:3000',    changeOrigin: true // 是否跨域   }  } },};

3.node服務器端文件

這里很重要的一點就是設置靜態資源目錄

app.use('/serverImage', express.static(path.join(__dirname, 'serverImage')));

對圖片上傳進行了方法的封裝

const fs = require('fs');const path = require('path');/* formidable用于解析表單數據,特別是文件上傳 */const formidable = require('formidable');/* 用于時間格式化 */const formatTime = require('silly-datetime');/* 圖片上傳 */module.exports = (req, res) => { /* 創建上傳表單 */ let form = new formidable.IncomingForm(); /* 設置編碼格式 */ form.encoding = 'utf-8'; /* 設置上傳目錄(這個目錄必須先創建好) */ form.uploadDir = path.join(__dirname, '../serverImage'); /* 保留文件后綴名 */ form.keepExtensions = true; /* 設置文件大小 */ form.maxFieldsSize = 2 * 1024 *1024; /* 格式化form數據 */ form.parse(req, (err, fields, files) => {  let file = files.file;  /* 如果出錯,則攔截 */  if(err) {   return res.send({'status': 500, msg: '服務器內部錯誤', result: ''});  }  if(file.size > form.maxFieldsSize) {   fs.unlink(file.path);   return res.send({'status': -1, 'msg': '圖片不能超過2M', result: ''});  }  /* 存儲后綴名 */  let extName = '';  switch (file.type) {   case 'image/png':    extName = 'png';    break;   case 'image/x-png':    extName = 'png';    break;   case 'image/jpg':    extName = 'jpg';    break;   case 'image/jpeg':    extName = 'jpg';    break;  }  if(extName.length == 0) {   return res.send({'status': -1, 'msg': '只支持jpg和png格式圖片', result: ''});  }  /* 拼接新的文件名 */  let time = formatTime.format(new Date(), 'YYYYMMDDHHmmss');  let num = Math.floor(Math.random() * 8999 + 10000);  let imageName = `${time}_${num}.${extName}`;  let newPath = form.uploadDir + '/' + imageName;  /* 更改名字和路徑 */  fs.rename(file.path, newPath, (err) => {   if(err) {    return res.send({'status': -1, 'msg': '圖片上傳失敗', result: ''});   } else {    return res.send({'status': 200, 'msg': '圖片上傳成功', result: {url: `http://localhost:3000/serverImage/${imageName}`}});   }  }) })};

方法的調用

const express = require('express');const router = express.Router();const uploadImg = require('./uploadImg');/* 上傳圖片 */router.post('/upload', (req, res) => { uploadImg(req, res);});module.exports = router;

服務器端入口文件

const express = require('express');const app = express();const path = require('path');/* body-parser是一個HTTP請求體解析的中間件 * 使用這個模塊可以解析JSON、Raw、文本、URL-encoded格式的請求體 * */const bodyParser = require("body-parser");const dataBaseOperate = require('./database/operate');/* 以application/json格式解析數據 */app.use(bodyParser.json());/* 以application/x-www-form-urlencoded格式解析數據 */app.use(bodyParser.urlencoded({ extended: false }));/* 設置靜態資源目錄 */app.use('/serverImage', express.static(path.join(__dirname, 'serverImage')));app.use('/api', dataBaseOperate);app.listen(3000, () => { console.log('server is listening to http://localhost:3000')});

4.小結

對于接口文件的返回,這里使用了body-parser這個中間件來對node返回的body進行json格式的解析

很重要的一點就是設置靜態資源目錄,不然的話就會報錯,找不到文件或者文件夾

設置靜態資源目錄,用于存儲服務器端的靜態資源文件

app.use('/serverImage', express.static(path.join(__dirname, 'serverImage')));

然后就是對文件的命名不能出現空格

文件的鏈接可以使用本地服務器端的url地址

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
www.午夜精品| 亚洲国产精品悠悠久久琪琪| 国产成人综合亚洲| 日本久久久久久久| 日韩禁在线播放| 亚洲片国产一区一级在线观看| 69国产精品成人在线播放| 久久精品视频亚洲| 久久久久久久香蕉网| 国产国产精品人在线视| 日韩精品视频在线| 久久视频国产精品免费视频在线| 国产网站欧美日韩免费精品在线观看| 国产成人精品日本亚洲| 一区二区三区国产视频| 国产精品爽黄69天堂a| 4438全国成人免费| 欧美国产日本在线| 精品国产欧美一区二区五十路| 日韩小视频在线| 91在线观看免费高清完整版在线观看| 日韩国产在线看| 国产亚洲精品久久久久动| 91久久国产婷婷一区二区| 国产成人精品国内自产拍免费看| 国内精品久久久久伊人av| 国语自产精品视频在线看一大j8| 日韩国产中文字幕| 欧美激情2020午夜免费观看| 久久久精品中文字幕| 26uuu国产精品视频| 国产精品美女在线观看| 久久久久久亚洲| 91色视频在线导航| 韩国三级电影久久久久久| 久久国产精品网站| 国产精品视频自在线| 欧美精品电影免费在线观看| 欧美亚洲国产日韩2020| 国产手机视频精品| www.日韩.com| 亚洲第一福利在线观看| 亚洲a成v人在线观看| 欧美激情乱人伦一区| 亚洲国内精品视频| 欧美日韩国产精品一区二区不卡中文| 国产精品普通话| 91国产美女在线观看| 国产一区二区视频在线观看| 91最新国产视频| 欧美一区二区三区四区在线| 人九九综合九九宗合| 日韩第一页在线| 色婷婷综合久久久久| 亚洲精品理论电影| 欧美激情第6页| 中文在线资源观看视频网站免费不卡| 啊v视频在线一区二区三区| 亚洲第一区在线观看| 午夜伦理精品一区| 亚洲成人精品在线| 国产精欧美一区二区三区| 91av国产在线| 4k岛国日韩精品**专区| 亚洲福利精品在线| 5252色成人免费视频| 国产亚洲美女精品久久久| 91亚洲精品一区二区| 亚洲精品黄网在线观看| 日韩av片电影专区| 欧美激情免费看| 国产精品嫩草影院久久久| 欧美放荡办公室videos4k| 欧美性高跟鞋xxxxhd| 91久热免费在线视频| 欧洲日韩成人av| 欧美精品免费在线| 久久久久亚洲精品成人网小说| 亚洲国产另类 国产精品国产免费| 日韩欧美在线视频日韩欧美在线视频| 北条麻妃一区二区在线观看| 欧美精品激情在线观看| 亚洲精品欧美极品| 久久久中文字幕| 日韩极品精品视频免费观看| 亚洲女同性videos| 最近2019中文字幕大全第二页| 久久精品国产电影| 亚洲午夜激情免费视频| 国产精品吹潮在线观看| 欧美在线国产精品| 欧美精品激情视频| 欧美日韩国产成人高清视频| 91超碰中文字幕久久精品| 欧美xxxx做受欧美.88| 成人免费网站在线观看| 成人免费激情视频| 富二代精品短视频| 最近更新的2019中文字幕| 日韩福利在线播放| 亚洲第一偷拍网| 国模吧一区二区三区| 九九精品视频在线观看| 精品国产91久久久| 精品国产一区二区三区久久狼黑人| 色无极亚洲影院| 日韩小视频在线观看| 另类少妇人与禽zozz0性伦| 日产精品久久久一区二区福利| 国产精品自拍小视频| 亚洲国产高清自拍| 北条麻妃99精品青青久久| 亚洲欧美变态国产另类| 久久久av亚洲男天堂| 亚洲精品白浆高清久久久久久| 午夜精品久久久久久久99热浪潮| 国产日韩专区在线| 5278欧美一区二区三区| 日韩精品在线私人| 热门国产精品亚洲第一区在线| 欧美老女人www| 97视频在线观看亚洲| 国产精品∨欧美精品v日韩精品| 亚洲精品国产综合久久| 国产精品亚发布| 亚洲的天堂在线中文字幕| 亚洲男人的天堂在线播放| 色无极亚洲影院| 欧美激情视频在线免费观看 欧美视频免费一| 精品国产91久久久久久老师| 亚洲一区制服诱惑| 国产精品福利久久久| 久久久久久久一区二区| 午夜精品久久久久久久白皮肤| 欧美激情性做爰免费视频| 日韩女优人人人人射在线视频| 色妞久久福利网| 伊人久久久久久久久久| 在线观看日韩专区| 亚洲第一网站免费视频| 欧美怡春院一区二区三区| 亚洲性线免费观看视频成熟| 亚洲人成啪啪网站| 午夜精品视频网站| 久久免费在线观看| 日韩av一区二区在线观看| 国产精品大片wwwwww| 国产一区二区三区四区福利| 欧美一级大片在线免费观看| 欧美xxxx18性欧美| 亚洲加勒比久久88色综合| 青青草精品毛片| 欧美二区乱c黑人| 日韩国产激情在线| 97精品一区二区三区| 亚洲福利视频网站| 亚洲白虎美女被爆操| 在线中文字幕日韩| 精品亚洲va在线va天堂资源站| 日韩亚洲精品电影| 一区二区三区在线播放欧美| 欧美激情欧美激情| 日韩视频欧美视频| 欧美激情精品久久久久久大尺度|