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

首頁 > 開發 > JS > 正文

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

2024-05-06 16:49:26
字體:
來源:轉載
供稿:網友

在自己做一個簡單的后臺管理系統時,用的是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地址

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


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩在线视频观看| 国产视频亚洲精品| 美女av一区二区三区| 日韩中文视频免费在线观看| 亚洲午夜性刺激影院| 亚洲欧美日韩在线高清直播| 精品国产999| 日韩免费av一区二区| 亚洲伊人一本大道中文字幕| 奇米影视亚洲狠狠色| 欧美自拍大量在线观看| 国产在线拍偷自揄拍精品| 九九热这里只有在线精品视| 欧美亚洲视频一区二区| 亚洲成人av资源网| 成人性生交大片免费观看嘿嘿视频| 久久视频在线视频| 91热精品视频| 国产+人+亚洲| 国产亚洲综合久久| 日韩国产激情在线| 91欧美精品成人综合在线观看| 国产精品成人一区二区| 欧美精品国产精品日韩精品| 久久免费视频网| 亚洲精品永久免费精品| 亚洲欧美日本精品| 精品国产拍在线观看| 国产午夜精品免费一区二区三区| 91成人在线视频| 欧美华人在线视频| 第一福利永久视频精品| 国产精品嫩草影院久久久| 久久成人亚洲精品| 国产成人av网| 国产做受高潮69| 色综合久久悠悠| 日韩精品免费综合视频在线播放| 成人黄色免费在线观看| 91美女片黄在线观看游戏| 欧美日韩激情小视频| 国产成人免费av| 日韩福利伦理影院免费| 成人激情视频在线观看| 欧美肥臀大乳一区二区免费视频| 精品成人av一区| 亚洲欧洲日韩国产| 久热国产精品视频| 国产日韩精品在线| 视频一区视频二区国产精品| 国产一区二区欧美日韩| 国产69精品99久久久久久宅男| 全球成人中文在线| 在线播放日韩欧美| 亚洲激情久久久| 狠狠躁夜夜躁久久躁别揉| 久久久久亚洲精品成人网小说| 九九九久久久久久| 成人免费网站在线观看| 日韩av色综合| 亚洲综合精品伊人久久| 俺也去精品视频在线观看| 亚洲国产精品va在看黑人| 日韩av电影院| 亚洲18私人小影院| 亚洲一区亚洲二区亚洲三区| 亚洲第一福利网站| 国产精品视频地址| 久久国内精品一国内精品| 精品国产精品三级精品av网址| 日本成熟性欧美| 国产精品一区二区电影| 色偷偷888欧美精品久久久| 日本欧美国产在线| 欧美一级bbbbb性bbbb喷潮片| 日韩高清电影免费观看完整| 奇米影视亚洲狠狠色| 亚洲free性xxxx护士白浆| 视频一区视频二区国产精品| 欧美日韩国产丝袜美女| 亚洲美腿欧美激情另类| 欧美日韩国产影院| 色妞一区二区三区| 91超碰caoporn97人人| 日韩hd视频在线观看| 中文字幕国内精品| 国产精品视频网址| 中文字幕日韩免费视频| 亚洲缚视频在线观看| 国产精品亚洲аv天堂网| 欧美亚洲视频在线观看| 国产精品老女人精品视频| 亚洲理论片在线观看| 91sao在线观看国产| 久久久人成影片一区二区三区| 亚洲天堂日韩电影| 69**夜色精品国产69乱| 热草久综合在线| 亚洲视频免费一区| 国外成人在线视频| 国产女同一区二区| 亚洲激情国产精品| 97久久伊人激情网| 久久91亚洲人成电影网站| 亚洲日本欧美日韩高观看| 国产一区二中文字幕在线看| 欧美精品久久一区二区| 欧美裸体xxxxx| 国产欧美一区二区三区四区| 欧美www视频在线观看| 中文字幕日韩精品在线观看| 日韩精品一二三四区| 久久人人爽人人爽人人片av高请| 欧美激情免费观看| 国产精品久久久久久久久久久久久久| 欧美日韩高清在线观看| 欧美日韩福利在线观看| 欧美日韩中国免费专区在线看| 国产精品揄拍500视频| 国外成人在线直播| 欧美床上激情在线观看| 美女av一区二区三区| 欧美中在线观看| 2019中文字幕在线免费观看| 98午夜经典影视| 91久久综合亚洲鲁鲁五月天| 久久香蕉频线观| 欧美一区二粉嫩精品国产一线天| 国产伦精品一区二区三区精品视频| 欧美另类精品xxxx孕妇| 国产欧美一区二区白浆黑人| yw.139尤物在线精品视频| 日本不卡高字幕在线2019| 欧美大尺度激情区在线播放| 亚洲精品日韩丝袜精品| 久久久成人精品视频| 亚洲第一页在线| 亚洲精品按摩视频| 色综合久久天天综线观看| 亚洲综合中文字幕在线观看| 欧美一级淫片丝袜脚交| 亚洲成人av片| 亚洲a在线观看| 欧美日本精品在线| 国产亚洲一区二区精品| 最近中文字幕日韩精品| 欧美精品少妇videofree| 91高潮精品免费porn| 亚洲自拍欧美另类| 精品亚洲一区二区三区在线观看| 欧美日韩成人精品| 亚洲福利精品在线| 日韩亚洲成人av在线| 亚洲国产精品久久久久久| 欧美大全免费观看电视剧大泉洋| 精品美女久久久久久免费| 亚洲无限av看| 国产精品伦子伦免费视频| 成人欧美一区二区三区黑人孕妇| 色偷偷88888欧美精品久久久| 69视频在线免费观看| 国产亚洲欧洲高清一区| 日韩hd视频在线观看| 久久久亚洲影院你懂的|