簡體   English   中英

NodeJS文件創建為對象?

[英]NodeJS File Creation as an Object?

我不想將文件保存在本地,但是我想創建一個文件對象,然后通過API上傳該對象。

    var request = require("request");
    var fs = require("fs");

    var arr = [
     [4, 56, 7, 3, 345],
     [34, 5, 2, 5, 7]
       ];

    var r = requests.post("https://slack.com/api/files.upload", function(err, res,body){
       console.log(body)''
     }

     var form = r.form();
     form.append('token', token)
     form.append("filename", filename)
     form.append('file', new Buffer(arr));

我想知道是否有可能不將文件保存在本地,而只是將包含數據的文件添加到要通過API提交的表單中?

是的,您可以將文件直接通過管道傳輸到請求中,而無需保存值。 但是,這取決於數據來自何處以及如何訪問它們。 當您執行fs.createReadStream('<filepath>')您正在創建一個ReadStream ,您將其作為表單數據的一部分傳遞給request 然后,請求使用此Stream讀取文件,並將其傳遞給您剛剛請求的資源。

以下代碼將獲取服務器可訪問的文件,並將其通過請求傳遞到所需的端點。

var request = require('request');
var fs = require('fs');

var formData = {
  token: token,
  filename: filename,
  file: fs.createReadStream('<filepath>');
};

request({
  method: 'POST',
  url: 'https://slack.com/api/files.upload',
  form: formData
}, function(err, res, body) {
   console.log(JSON.stringify(body, null, 2));
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM