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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # **將文件保存在后端項目本地** eg. 將頭像文件保存到本地 `public/uploads/avatar` 文件夾下 ## **插件 `multer`** ## **安裝并使用** #### **安裝** ``` npm install multer --save ``` #### **引用** ``` const multer = require("multer"); const upload = multer({ dest: "public/uploads/avatar/" });// 項目重啟之后會在指定dest指定的路徑下創建對應的文件夾 ``` #### **自定義文件存儲名稱** ``` const storage = multer.diskStorage({ destination: 'uploads/', // 文件存儲路徑 filename: (req, file, cb) => { // 重命名文件函數 // 生成帶有.jpg后綴的文件名 const fileName = file.fieldname + '-' + Date.now() + '.jpg'; cb(null, fileName); } }); ``` #### **使用** ``` // 示例 router.post( "/admin/user/update", // 前端調用上傳時的接口地址 upload.single("file"), // 前端負載中的formdata中的文件二進制對應的key UserController.updateUserInfo ); // 更新用戶信息 ``` #### **controller 中獲取到保存的file信息** ``` updateUserInfo: async (req, res) => { ... // 通過 req.file 獲取到file信息 /* { fieldname: 'file', // 字段 originalname: 'bg_userportrait.png', // 文件原始名稱 encoding: '7bit', // 編碼 mimetype: 'image/png', // 文件類型 destination: 'public/uploads/avatar/', // 文件存儲文件夾路徑 filename: '23a778bd9d379ca6987cf8890351cf1f', // 存儲后的文件名 path: 'public\\uploads\\avatar\\23a778bd9d379ca6987cf8890351cf1f',// 文件存儲完整地址 size: 43067 // 文件大小 } */ ... } ``` # **實現文件上傳到七牛云** ## **安裝依賴** ``` npm/cnpm install qiniu ``` or ``` yarn add qiniu ``` ## **導出七牛云配置文件的Token** ``` // 七牛云配置文件 const qiniu = require('qiniu'); // 創建上傳憑證(accessKey 和 secretKey在七牛云個人中心中有,blog 是七牛云創建的空間名稱) const accessKey = 'xxxxxxx'; // ak密鑰 const secretKey = 'xxxx'; // sk密鑰 const mac = new qiniu.auth.digest.Mac(accessKey, secretKey); const options = { scope: 'blog' // 存儲空間的名字 }; const putPolicy = new qiniu.rs.PutPolicy(options); const uploadToken = putPolicy.uploadToken(mac); module.exports = { uploadToken // 導出的是七牛云生成的token }; ``` ## **提供接口給前端使用** ``` // 前端獲取到七牛云返回的token const express = require('express'); // 定義路由級中間件 const router = express.Router(); const uploadToken = require('./qiniu') router.get('/getQiniuToken', (req, res) => { res.json({ code: 200, data: uploadToken.uploadToken, messages: '獲取成功' }); }); module.exports = router; ``` # **實現文件上傳到MinIO** ## **安裝依賴** ``` npm install minio --save ``` ## **引用依賴** ``` const Minio = require('minio'); ``` ## **配置minio** ``` const minioClient = new Minio.Client({ endPoint: 'minio.example.com', port: 9000, useSSL: true, accessKey: 'YOUR-ACCESSKEYID', secretKey: 'YOUR-SECRETACCESSKEY', }); ``` ## **實現接口** ``` app.post('/upload', (req, res) => { if (!req.files) { res.status(400).send('No file uploaded'); } else { const file = req.files.file; const metaData = { 'Content-Type': file.mimetype, }; const stream = Buffer.from(file.data, 'binary'); minioClient.putObject( 'my-bucket', file.name, stream, stream.length, metaData, (err, etag) => { if (err) return console.log(err); console.log(etag); res.status(200).send('File uploaded'); }, ); } }); ``` # **實現本地批量上傳文件到AliYunOSS** ## **安裝依賴** ``` npm install ali-oss --save ``` ## **使用** #### **創建oss.js** ``` const OSS = require('ali-oss'); async function uploadFileToOSS(file) { // 配置你的OSS信息 const client = new OSS({ region: '<Your region>', accessKeyId: '<Your accessKeyId>', accessKeySecret: '<Your accessKeySecret>', bucket: '<Your bucket name>', }); // 假設file是一個包含文件信息的對象,例如從Express.js的req.file獲取 // file.name是文件名,file.path是文件的本地路徑 try { const result = await client.put(file.name, file.path); console.log('File uploaded to OSS:', result); return result; } catch (e) { console.error('Error uploading file to OSS:', e); return e; } } ``` #### **使用示例** ``` // 假設file是你前端傳來的文件對象,它可能包含name和path屬性 uploadFileToOSS(file).then(result => { console.log('上傳結果:', result); }).catch(error => { console.error('上傳失敗:', error); }); ```
                  <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>

                              哎呀哎呀视频在线观看