• <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模塊實現文件上傳

      2023-2-10    前端達人

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

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

      下面我們來寫一個Demo,來利用formidable來實現圖片上傳

      1.下面來看一眼 目錄結構

      在這里插入圖片描述

      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 文件

      安裝依賴,執行下面這三句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
      //配置靜態資源服務器,將public文件夾靜態化出來
      
      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'){
              //創建一個表單的實例,formidable
              var form = new formidable.IncomingForm();
              //設置上傳的文件存放在哪里
              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);獲取文件的擴展名,便于下面修改上傳后的文件名字
                  //改名
                  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('服務已經啟動在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

      會看到這個頁面

      在這里插入圖片描述

      然后選擇任意文件點擊提交
      會發現在很短的時間內你的文件會提交成功在你的uploads文件夾下。




      藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請加藍小助,微信號:ben_lanlan,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系01063334945。


      分享此文一切功德,皆悉回向給文章原作者及眾讀者.
      免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。


      藍藍設計www.wtxcl.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務UI設計公司、界面設計公司、UI設計服務公司、數據可視化設計公司、UI交互設計公司、高端網站設計公司、UI咨詢、用戶體驗公司、軟件界面設計公司

      日歷

      鏈接

      個人資料

      藍藍設計的小編 http://www.wtxcl.cn

      存檔

      主站蜘蛛池模板: 精品无码国产自产拍在线观看蜜 | 人妻精品| 精品国产不卡在线电影| 黑人大战日本人妻嗷嗷叫| 无码h片| 国产精品18| 色偷偷www8888| 亚洲AV日韩AV高清在线播放| 日本精品视频一区二区| 尹人成人| 亚洲视屏| 久色资源| 亚洲国产精品美女久久久久| 精品国产国产AV一区二区| 无码午夜| 国产精品视频区| 板桥市| 伊人久久大香线蕉综合AV| 中文字幕一区二区三区在线不卡| 天堂a?中文在线| 玉林市| 激情狠狠| 精品3p| 新兴县| 日本岛国大片不卡人妻| 91成人在线免费观看| 国产乱妇4p交换乱免费视频| 国产va精品免费观看| 国内精品视频自在一区| 91视频网站免费观看| 超碰免费在线观看| 综合色色网| 999白浆| 69精品视频| 久久精品一区| 99人妻| 狼友福利在线观看| 亚洲色涩| 91新视频| 亚洲AV第二区国产精品| 自拍偷拍亚洲|