<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] ### egg 單文件上傳 * [ ] 通過`ctx.getFileStream`便捷的獲取到用戶上傳的文件,需要滿足兩個條件: * 只支持上傳一個文件。 * 上傳文件必須在所有其他的 fields 后面,否則在拿到文件流時可能還獲取不到 fields。 ***** 文檔:[https://eggjs.org/zh-cn/basics/controller.html](https://eggjs.org/zh-cn/basics/controller.html) 代碼: ``` 'use strict'; const Controller = require('egg').Controller; const path = require('path') const fs = require('fs') const sendToWormhole = require('stream-wormhole'); class UserController extends Controller { /** * 上傳用戶頭像 */ async upload() { const { ctx } = this // 讀取表單提交的文件流 const stream = await ctx.getFileStream() // 獲取上傳的文件名 like.jpg dog.png const file_name = path.basename(stream.filename) // 拼接上傳路徑 const upload_path = 'app/public/admin/uploads/' + file_name // 創建一個可以寫入的流 const writeStream = fs.createWriteStream(upload_path) let result; try { // 把讀取到的表單信息流寫入創建的可寫流 result = await stream.pipe(writeStream) } catch (err) { // 上傳失敗銷毀流 await sendToWormhole(stream) throw err } ctx.body = { url: upload_path, // 上傳路徑 fields: stream.fields // 所有表單字段都能通過 `stream.fields` 獲取到 } } } module.exports = UserController; ``` ***** ### 使用 pump 插件上傳 * [ ] 文檔:https://www.npmjs.com/package/pump * [ ] 首先安裝 npm install pump * [ ] 代碼: ``` 'use strict'; const Controller = require('egg').Controller; const path = require('path') const fs = require('fs') const pump = require('pump') class UserController extends Controller { /** * 上傳用戶頭像 */ async upload() { const { ctx } = this // 讀取表單提交的文件流 const stream = await ctx.getFileStream() // 獲取上傳的文件名 like.jpg dog.png const file_name = path.basename(stream.filename) // 拼接上傳路徑 const upload_path = 'app/public/admin/uploads/' + file_name // 創建一個可以寫入的流 const writeStream = fs.createWriteStream(upload_path) // 第一個參數讀取流,第二個參數可寫流, 上傳失敗會自動銷毀流 await pump(stream, writeStream) ctx.body = { url: upload_path, // 上傳路徑 fields: stream.fields // 所有表單字段都能通過 `stream.fields` 獲取到 } } } module.exports = UserController; ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看