国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

vuejs使用FormData,ajax上傳圖片文件

zollero / 2079人閱讀

摘要:我相信很多使用的朋友,都有采用上傳圖片的需求,因?yàn)榍昂蠖朔蛛x后,我們希望都能用來(lái)解決數(shù)據(jù)問題,傳統(tǒng)的表單提交會(huì)導(dǎo)致提交成功后頁(yè)面跳轉(zhuǎn),而使用能夠無(wú)刷新上傳圖片等文件。

我相信很多使用vuejs的朋友,都有采用ajax上傳圖片的需求,因?yàn)榍昂蠖朔蛛x后,我們希望都能用ajax來(lái)解決數(shù)據(jù)問題,傳統(tǒng)的表單提交會(huì)導(dǎo)致提交成功后頁(yè)面跳轉(zhuǎn),而使用ajax能夠無(wú)刷新上傳圖片等文件。
其實(shí)已經(jīng)有朋友封裝了相關(guān)的npm包,但是我想說(shuō)用原生的js api來(lái)實(shí)現(xiàn),也用不了多少代碼,而且更靈活,能使用原生就盡量用原生。接下來(lái)就以一個(gè)簡(jiǎn)單的頭像上傳來(lái)說(shuō)明如何使用。

效果圖

前端實(shí)現(xiàn)

解釋一下上面代碼的意思,當(dāng)我們點(diǎn)擊圖片會(huì)觸發(fā)setAvatar函數(shù),該函數(shù)會(huì)觸發(fā)input的click事件,于是就會(huì)彈出文件選擇框,當(dāng)我們選擇了一張圖片后,觸發(fā)chageImage函數(shù),這個(gè)函數(shù)的功能就是預(yù)覽你上傳的圖片,單后當(dāng)我們點(diǎn)擊修改按鈕后,就會(huì)把資源傳到后端

后端處理

后端接收到你上傳的資源,肯定要把資源保存到服務(wù)器,我就以Nodejs來(lái)說(shuō)明,我使用formidable解析上傳的數(shù)據(jù)

exports.avatar = function(req, res, next) {
  let form = new formidable.IncomingForm()
  form.parse(req, function(err, fields, files) {
    if (err) {
      return res.json({
        "code": 500,
        "message": "內(nèi)部服務(wù)器錯(cuò)誤"
      })
    }

    // 獲取后綴名
    let extname = path.extname(files.avatar.name)
    let oldpath = files.avatar.path;
    let newpath = "./public/avatar" + extname;
    let avatarName = "avatar" + extname;
    // 更改名字和路徑
    fs.rename(oldpath, newpath, function(err) {
      if (err) {
        return res.json({
          "code": 401,
          "message": "圖片上傳失敗"
        })
      }
    })
    // 更新數(shù)據(jù)庫(kù)
    db.updateMany("users", { "user": username }, { "avatar": avatarName },
      function(err, result) {
        if (err) {
          return res.json({
            "code": 401,
            "message": "頭像更新失敗"
          })
        }
        return res.json({
          "code":200,
          "message": "頭像上傳成功"
        })
      })
  })
}

后端解析ajax提交的數(shù)據(jù)和解析采用傳統(tǒng)表單提交的數(shù)據(jù)方法一樣,如果你是做前端開發(fā)的,不了解后端代碼影響不大。
說(shuō)這么多,還是來(lái)個(gè)demo吧,https://github.com/wmui/vueblog,這個(gè)小項(xiàng)目后臺(tái)有個(gè)頭像修改的功能,是使用ajax上傳圖片的,核心代碼百行不到,前后端分離。
在這里挺感謝sf和掘金的朋友的,開源此項(xiàng)目半月左右,收到200多個(gè)star,人生第一次這么輝煌。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/84708.html

相關(guān)文章

  • Ajax文件上傳

    摘要:簡(jiǎn)單的上傳例子先在里面準(zhǔn)便好標(biāo)簽添加上傳文件上傳文件解讀步驟的對(duì)象獲取,對(duì)象生成使用的事件來(lái)獲取,文件的內(nèi)容使用的方法來(lái)添加一個(gè)新值到里面來(lái)使用的的方法來(lái)上傳文件原理說(shuō)明對(duì)象其實(shí)不止是可以用來(lái)上傳文件,如同其名,可以模擬一系列表單控件的 showImg(https://segmentfault.com/img/bVbbKYh?w=1366&h=660); FormData 簡(jiǎn)單的上傳例...

    tomato 評(píng)論0 收藏0
  • nodejs express圖片上傳前后端配置講解

    摘要:默認(rèn)地,表單數(shù)據(jù)會(huì)編碼為。就是說(shuō),在發(fā)送到服務(wù)器之前,所有字符都會(huì)進(jìn)行編碼空格轉(zhuǎn)換為加號(hào),特殊符號(hào)轉(zhuǎn)換為值。提交說(shuō)明文件上傳。圖片選擇圖片地址上傳上傳。用表單直接構(gòu)造對(duì)象就不需要下面的方法來(lái)為表單進(jìn)行賦值了。 nodejs圖片上傳 nodejs一般開發(fā)網(wǎng)站基本都用express框架,本文也主要以express為例,講解如何上傳圖片;express本身沒有上傳圖片功能;一般都是集成相應(yīng)的...

    tuniutech 評(píng)論0 收藏0
  • blob和base64轉(zhuǎn)文件并通過ajax上傳到服務(wù)器

    摘要:有時(shí)候,我們不想通過上傳本地圖片的方式上傳圖片,而是通過相機(jī)拍照,將這個(gè)拍照后的圖片直接上傳到服務(wù)器上,不需要保存到本地。現(xiàn)在我們來(lái)通過的或者方法對(duì)象對(duì)象來(lái)通過上傳圖片。 有時(shí)候,我們不想通過上傳本地圖片的方式上傳圖片,而是通過相機(jī)拍照,將這個(gè)拍照后的圖片直接上傳到服務(wù)器上,不需要保存到本地。比如,用video模擬一個(gè)攝像頭,通過webrtc調(diào)用攝像頭的方式拍一張照,然后通過canva...

    bingchen 評(píng)論0 收藏0
  • blob和base64轉(zhuǎn)文件并通過ajax上傳到服務(wù)器

    摘要:有時(shí)候,我們不想通過上傳本地圖片的方式上傳圖片,而是通過相機(jī)拍照,將這個(gè)拍照后的圖片直接上傳到服務(wù)器上,不需要保存到本地?,F(xiàn)在我們來(lái)通過的或者方法對(duì)象對(duì)象來(lái)通過上傳圖片。 有時(shí)候,我們不想通過上傳本地圖片的方式上傳圖片,而是通過相機(jī)拍照,將這個(gè)拍照后的圖片直接上傳到服務(wù)器上,不需要保存到本地。比如,用video模擬一個(gè)攝像頭,通過webrtc調(diào)用攝像頭的方式拍一張照,然后通過canva...

    tuomao 評(píng)論0 收藏0
  • javascript圖片上傳相關(guān)資料整理

    摘要:說(shuō)明使用獲取表單的數(shù)據(jù),不同通過和獲取值上傳圖片這三個(gè)參數(shù)必須配置該處使用了來(lái)獲取文件上傳的進(jìn)度本人沒實(shí)驗(yàn),待測(cè)圖片壓縮 圖片上傳的多種方式 一.使用Form表單,enctype=multipart/form-data 說(shuō)明:1.監(jiān)聽input上的change事件可以實(shí)現(xiàn)自動(dòng)上傳到服務(wù)器2.服務(wù)器端通過name字段,獲取上傳圖片的信息 3.數(shù)據(jù)信...

    liukai90 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<