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

資訊專欄INFORMATION COLUMN

Node 文件上傳

sPeng / 3500人閱讀

摘要:使用來完成文件上傳的需求項(xiàng)目地址技術(shù)棧中專門用來處理文件上傳的中間件,不是唯一文件初始路徑處理使用專門用來處理文件的屬性注意添加表單的上傳文件遇到的問題及解決方案文件部署如果文件處理需要一直的修改某一文件比如那么服務(wù)端是沒法搞

使用node來完成文件上傳的需求 項(xiàng)目地址:github 技術(shù)棧

node.js

express

multer

multer

multer node 中專門用來處理文件上傳的中間件,不是唯一

let storage = multer.diskStorage({
  destination: function (req, file, cb) {
    // 文件初始路徑
    let filePath = path.join(__dirname, "upload");
    if (!fs.existsSync(filePath)) {
      fs.mkdir(filePath, (err) => {
        if (err) {
          console.log(err)
        } else {
          cb(null, filePath)
        }
      })
    } else {
      cb(null, filePath)
    }
  },
  filename: function (req, file, cb) {
    var ext = path.extname(file.originalname);
    // UUID 處理
    function guid() {
      return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
        var r = Math.random() * 16 | 0,
          v = c == "x" ? r : (r & 0x3 | 0x8);
        return v.toString(16);
      });
    }
    cb(null, file.fieldname + guid() + Date.now() + ext)
  }
})
使用HTML5專門用來處理文件的input屬性file

注意添加form表單的 method="post" enctype="multipart/form-data"

遇到的問題及解決方案 文件部署
如果文件處理需要一直的修改某一文件比如data.json, 那么服務(wù)端git是沒法搞得,因?yàn)槊看涡薷闹蠖嫉弥匦氯it pull代碼,解決方案是建立一個(gè)data.json.dist 文件,告知data.json文件是存在的,然后當(dāng)部署之后再生成data.json文件就可以完美解決這個(gè)問題了
url轉(zhuǎn)碼
使用encodeURIComponent去做url轉(zhuǎn)碼,因?yàn)闀?huì)有&符號的存在,encodeURI是沒法去處理的,會(huì)導(dǎo)致url地址錯(cuò)誤
使用// 而非/ 引入外部文件
受限于https和http協(xié)議,使用 / 引入而使用https協(xié)議訪問網(wǎng)頁時(shí)會(huì)報(bào)錯(cuò),并且會(huì)鎖定文件,而使用 // 就可以避免這個(gè)問題從而達(dá)到自適應(yīng) 協(xié)議
數(shù)據(jù)的處理
注意json數(shù)據(jù)格式的轉(zhuǎn)換,以及 res.end/send 數(shù)據(jù)要求
防止文件命名重復(fù) UUID
// UUID 處理
    function guid() {
      return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
        var r = Math.random() * 16 | 0,
          v = c == "x" ? r : (r & 0x3 | 0x8);
        return v.toString(16);
      });
    }
表單數(shù)據(jù)的處理
采用 XMLHttpRequest 2 的新API Formdata處理表單
node 的多進(jìn)程
使用pm2通過配置可以開啟多個(gè)node程序,并且窗口關(guān)閉后依然可以正常使用,結(jié)束方法為 命令 pm2 stop "fileName" 詳情參考官網(wǎng)
源碼在文章標(biāo)題下方

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

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

相關(guān)文章

  • Node+H5實(shí)現(xiàn)大文件分片上傳(有源碼)

    摘要:話前上傳大文件上傳的教程網(wǎng)上很多但是大部分沒給出一個(gè)比較完整的出來這個(gè)博客給出的是前后端一套完整的解決方案其中前端沒有使用第三方上傳庫希望能幫到有同樣需求的朋友們大文件分片上傳的好處在這里就不用多說了之前不管是上傳單文件還是分片文件上傳都是 話前 上傳大文件上傳的教程網(wǎng)上很多, 但是大部分沒給出一個(gè)比較完整的出來, 這個(gè)博客給出的是前后端一套完整的解決方案, 其中前端沒有使用第三方上傳...

    1treeS 評論0 收藏0
  • Node處理文件上傳

    摘要:前言在開發(fā)中,文件上傳是一個(gè)非常常見非常重要的功能。本文將介紹如何用處理上傳的文件。前端界面如下用戶從瀏覽器中選擇文件,點(diǎn)擊上傳,將發(fā)起請求到服務(wù)器,服務(wù)器將接受到的文件存儲(chǔ)在服務(wù)器硬盤中。 前言 在Web開發(fā)中,文件上傳是一個(gè)非常常見、非常重要的功能。本文將介紹如何用Node處理上傳的文件。 需求分析 由于現(xiàn)在前后端分離很流行,那么本文也直接采用前后端分離的做法。前端界面如下:sho...

    HtmlCssJs 評論0 收藏0
  • H5拖放+FormData接口+NodeJS,完整異步文件上傳(一)

    摘要:前段時(shí)間面試過程中,頻繁遇到異步文件上傳的相關(guān)問題。所以,這會(huì)是一個(gè)拖放接口實(shí)現(xiàn)文件異步上傳的完整。監(jiān)聽放置元素的事件,通過對象可以獲得拖拽事件的狀態(tài)及數(shù)據(jù)。后端文件接收保存后端使用實(shí)現(xiàn)文件上傳。 ??前段時(shí)間面試過程中,頻繁遇到H5異步文件上傳的相關(guān)問題。還遇到過一個(gè)通過H5拖放功能實(shí)現(xiàn)文件異步上傳的問題,大概知道H5有新增拖拽功能可以接收文件,如何異步上傳文件就母雞了(攤手)。面試...

    NervosNetwork 評論0 收藏0

發(fā)表評論

0條評論

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