Vue+ElementUI+NodeJs圖片上傳

一、將圖片上傳到服務(wù)器

1摹芙、添加圖片上傳框

在Vue組件的表單中添加圖片上傳框

<el-form-item label="圖標(biāo)">
  <el-upload
    class="avatar-uploader"
    :action="$http.defaults.baseURL + '/upload'"
    :show-file-list="false"
    :on-success="afterUpload"
  >
    <img v-if="model.icon" :src="model.icon" class="avatar">
    <i v-else class="el-icon-plus avatar-uploader-icon"></i>
  </el-upload>
</el-form-item>

其中:

  • action:圖片上傳到服務(wù)器api接口驮吱;
  • show-file-list:是否顯示已上傳的文件列表;
  • on-success:文件上傳成功時(shí)的事件

2、添加服務(wù)器接口

(1)在服務(wù)器端建立uploads文件夾用來(lái)接受上傳的文件腐巢,并將uploads文件夾托管為靜態(tài)文件

app.use('/uploads', express.static(__dirname + '/uploads'))

(2)接收?qǐng)D片,并存放入uploads文件夾玄括,然后返回圖片的url地址冯丙,表單之后會(huì)將圖片的url上傳到服務(wù)器。

const multer = require('multer')
const upload = multer({dest: __dirname + '/../../uploads'})
app.post('/admin/api/upload',upload.single('file'), async (req, res) => {
  const file = req.file
  file.url = `http://localhost:3000/uploads/${file.filename}`
  res.send(file)
})

其中:

multer是express官方推薦的文件上傳中間件遭京,它是在busboy的基礎(chǔ)上開(kāi)發(fā)的胃惜。

1.文件上傳有以下方法

  • muilter.single(‘file’), //適用于單文件上傳

  • muilter.array(‘file’,num), //適用于多文件上傳,num為最多上傳個(gè)數(shù)哪雕,上傳文件的數(shù)量可以小于num,

  • muilter.fields(fields), //適用于混合上傳船殉,比如A類文件1個(gè),B類文件2個(gè)热监。官方API有詳細(xì)說(shuō)明捺弦。

2.file為上傳字段名稱,當(dāng)使用form表單submit方式上傳時(shí)孝扛,必須與表單上傳的name屬性保持一致列吼。 表單記得加上 enctype=‘multipart/form-data’

3.對(duì)上傳文件大小限制,名稱限制等均可在limits中加上苦始,具體可加屬性寞钥,請(qǐng)參考官方api

3陌选、輸入框顯示上傳的圖片

使用on-success鉤子函數(shù)來(lái)處理服務(wù)器返回的數(shù)據(jù)理郑,當(dāng)上傳成功時(shí)在圖片上傳框中顯示上傳的圖片。

afterUpload(res) {
  // 明確告訴vue賦值 model.icon = res.url
  this.$set(this.model, 'icon', res.url)
  // this.model.icon = res.url
},

注意:若使用this.model.icon = res.url賦值的話咨油,圖片上傳成功后不會(huì)在上傳框中顯示您炉。

二、在前端表格顯示圖片

在需要顯示圖片的Vue組件中役电,先請(qǐng)求服務(wù)器api接口赚爵,然后將圖片的url綁定到img標(biāo)簽的src屬性上。

<el-table-column prop="icon" label="圖標(biāo)">
  <template slot-scope="scope">
    <img :src="scope.row.icon" style="height: 3rem">
  </template>
</el-table-column>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末法瑟,一起剝皮案震驚了整個(gè)濱河市冀膝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌霎挟,老刑警劉巖窝剖,帶你破解...
    沈念sama閱讀 212,029評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異酥夭,居然都是意外死亡赐纱,警方通過(guò)查閱死者的電腦和手機(jī)脊奋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)疙描,“玉大人狂魔,你說(shuō)我怎么就攤上這事∫担” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,570評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵整份,是天一觀的道長(zhǎng)待错。 經(jīng)常有香客問(wèn)我,道長(zhǎng)烈评,這世上最難降的妖魔是什么火俄? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,535評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮讲冠,結(jié)果婚禮上瓜客,老公的妹妹穿的比我還像新娘。我一直安慰自己竿开,他們只是感情好谱仪,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,650評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著否彩,像睡著了一般疯攒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上列荔,一...
    開(kāi)封第一講書(shū)人閱讀 49,850評(píng)論 1 290
  • 那天敬尺,我揣著相機(jī)與錄音,去河邊找鬼贴浙。 笑死砂吞,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的崎溃。 我是一名探鬼主播蜻直,決...
    沈念sama閱讀 39,006評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼笨奠!你這毒婦竟也來(lái)了袭蝗?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,747評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤般婆,失蹤者是張志新(化名)和其女友劉穎到腥,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蔚袍,經(jīng)...
    沈念sama閱讀 44,207評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乡范,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,536評(píng)論 2 327
  • 正文 我和宋清朗相戀三年配名,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晋辆。...
    茶點(diǎn)故事閱讀 38,683評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡渠脉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瓶佳,到底是詐尸還是另有隱情芋膘,我是刑警寧澤,帶...
    沈念sama閱讀 34,342評(píng)論 4 330
  • 正文 年R本政府宣布霸饲,位于F島的核電站为朋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏厚脉。R本人自食惡果不足惜习寸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,964評(píng)論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望傻工。 院中可真熱鬧霞溪,春花似錦、人聲如沸中捆。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,772評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)泄伪。三九已至忽你,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間臂容,已是汗流浹背科雳。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,004評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脓杉,地道東北人糟秘。 一個(gè)月前我還...
    沈念sama閱讀 46,401評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像球散,于是被迫代替她去往敵國(guó)和親尿赚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,566評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5蕉堰? 答:HTML5是最新的HTML標(biāo)準(zhǔn)凌净。 注意:講述HT...
    kismetajun閱讀 27,450評(píng)論 1 45
  • 本文包括:1、文件上傳概述2屋讶、利用 Commons-fileupload 組件實(shí)現(xiàn)文件上傳3冰寻、核心API——Dis...
    廖少少閱讀 12,531評(píng)論 5 91
  • 圖片裁切 <!-- 圖片裁剪彈框 --> 圖片裁剪 ...
    iKu_fccb閱讀 3,826評(píng)論 0 0
  • 我叫馬鳴霞,學(xué)號(hào)是2018211224皿渗,我的簡(jiǎn)書(shū)號(hào)為旅二24馬鳴霞斩芭。我是一個(gè)比較內(nèi)向的女孩轻腺,但我很渴望突破自己,我...
    旅二24馬鳴霞閱讀 319評(píng)論 0 0
  • 我們 總會(huì)苦盡甘來(lái)的....對(duì)吧 但.... 什么樣的終點(diǎn)才能配得上這一路的顛沛流離
    閑小慫閱讀 177評(píng)論 0 1