• <abbr id="chdyf"></abbr>
    <ruby id="chdyf"><acronym id="chdyf"><meter id="chdyf"></meter></acronym></ruby>
    <bdo id="chdyf"></bdo>
    <dfn id="chdyf"><menu id="chdyf"></menu></dfn>
    1. <menuitem id="chdyf"></menuitem><strong id="chdyf"><menu id="chdyf"></menu></strong>

      <rt id="chdyf"><menu id="chdyf"></menu></rt>
      成人小说一区二区三区,伊人精品成人久久综合全集观看,久久HEZYO色综合,中文字幕精品人妻熟女,影音先锋成人网站,我要看免费一级毛片,中国女人做爰A片,中文字幕av久久爽Av

      使用Node.js的formidable模塊實現(xiàn)文件上傳

      2023-2-10    前端達(dá)人

      在我上一篇寫的Node.js實現(xiàn)簡單的POST請求
      里面POST請求接受參數(shù)需要寫兩個事件,這難免有些不太方便
      在這里插入圖片描述

      如果我們用formidable來接受參數(shù)的話,會變得特別方便。

      下面我們來寫一個Demo,來利用formidable來實現(xiàn)圖片上傳

      1.下面來看一眼 目錄結(jié)構(gòu)

      在這里插入圖片描述

      2.先來寫一個簡單的前端上傳頁面

      index.html
      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <title>Document</title>
      </head>
      <body>
          <form class="upload" action="shangchuan" enctype="multipart/form-data" method="post"><!--  上傳接口是/shangchuan -->
              <p>
                  請上傳一個頭像
                  <input type="file" name="wenjian">
              </p>
              <p>
                  <input type="submit" value="提交">
              </p>
          </form>
      </body>
      </html> 
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20

      2.package.json 文件

      安裝依賴,執(zhí)行下面這三句npm語句

      npm install finalhandler --save
      npm install serve-static --save
      npm install formidable --save

      之后會自動生成下面這個package.json文件

      {
        "dependencies": {
          "finalhandler": "^1.1.1",
          "formidable": "^1.2.1",
          "serve-static": "^1.13.2"
        }
      } 
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8

      3.post.js

      var finalhandler = require('finalhandler')
      var http = require('http')
      var serveStatic = require('serve-static')
      var url = require('url')
      var fs = require('fs')
      var querystring = require('querystring')
      var formidable = require('formidable')
      var path = require('path')
      // Serve up public/ftp folder
      //配置靜態(tài)資源服務(wù)器,將public文件夾靜態(tài)化出來
      
      var serve = serveStatic('public', {'index': ['index.html', 'index.htm']})
      
      // Create server
      var server = http.createServer(function onRequest (req, res) {
          //路由
          var pathname = url.parse(req.url).pathname;
          if(pathname == '/shangchuan'){
              //創(chuàng)建一個表單的實例,formidable
              var form = new formidable.IncomingForm();
              //設(shè)置上傳的文件存放在哪里
              form.uploadDir = './uploads';
              //處理表單
              form.parse(req,(err,fields,files) => {
                  //fields 表示普通控件
                  //files 表示文件控件
                  if(!files.wenjian){
                      return;
                  }
                  if(!files.wenjian.name){
                      return;
                  }
                  var extname = path.extname(files.wenjian.name);獲取文件的擴(kuò)展名,便于下面修改上傳后的文件名字
                  //改名
                  fs.rename(files.wenjian.path, files.wenjian.path + extname,() => {
                      res.end('上傳成功')
                  })
                  // console.log(fields);
              })
              return;
          }
          serve(req, res, finalhandler(req, res))
      })
      
      // Listen
      server.listen(3000);
      console.log('服務(wù)已經(jīng)啟動在3000端口'); 
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
      • 43
      • 44
      • 45
      • 46
      • 47

      4.最后找到post文件的目錄,然后開始node post.js

      會看到這個頁面

      在這里插入圖片描述

      然后選擇任意文件點擊提交
      會發(fā)現(xiàn)在很短的時間內(nèi)你的文件會提交成功在你的uploads文件夾下。




      藍(lán)藍(lán)設(shè)計建立了UI設(shè)計分享群,每天會分享國內(nèi)外的一些優(yōu)秀設(shè)計,如果有興趣的話,可以進(jìn)入一起成長學(xué)習(xí),請加藍(lán)小助,微信號:ben_lanlan,報下信息,藍(lán)小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務(wù)合作,也請與我們聯(lián)系01063334945。


      分享此文一切功德,皆悉回向給文章原作者及眾讀者.
      免責(zé)聲明:藍(lán)藍(lán)設(shè)計尊重原作者,文章的版權(quán)歸原作者。如涉及版權(quán)問題,請及時與我們?nèi)〉寐?lián)系,我們立即更正或刪除。


      藍(lán)藍(lán)設(shè)計m.wtxcl.cn )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計、BS界面設(shè)計 、 cs界面設(shè)計 、 ipad界面設(shè)計 、 包裝設(shè)計 、 圖標(biāo)定制 、 用戶體驗 、交互設(shè)計、 網(wǎng)站建設(shè) 平面設(shè)計服務(wù)UI設(shè)計公司、界面設(shè)計公司、UI設(shè)計服務(wù)公司、數(shù)據(jù)可視化設(shè)計公司、UI交互設(shè)計公司、高端網(wǎng)站設(shè)計公司、UI咨詢、用戶體驗公司、軟件界面設(shè)計公司

      日歷

      鏈接

      個人資料

      存檔

      主站蜘蛛池模板: 人妻中文字幕亚洲| 制服丝袜亚洲在线| av激情影院| 91视频播放| 国产精品久久久亚洲456| 无码毛片aaa在线| 综合AV第一页| jizz国产| 人妻久久久| 江达县| www免费视频| 成人黄色一级片一级片| 波多野结衣AV不卡无码| freeAV爽视频| 遵义县| 欧美日韩精品福利在线观看| 亚洲欧美V| av在线日韩| av女人的天堂| 乱色熟女综合一区二区| 95sao国产在线观看免费| 色综合久| 中文字字幕在线中文乱码| 精品国产三级在线观看| 亚洲人妻系列| 久久精品99久久久久久久久| 成武县| 影音先锋久久久久av综合网成人| 制服.丝袜.亚洲.中文.综合| 欧美AⅤ| 海伦市| 2020中文字字幕在线不卡| 51av视频| 亚洲精品乱码久久久久| 国产精品免费久久久久软件| 性史性农村dvd毛片| 99精品人妻| jizzjizzjizzjizz| 亚洲成人av在线综合| 孕妇bbwbbwbbwbbw超清| 亚洲一二三|