簡體   English   中英

將文件內容傳遞給函數,而不是下載文件

[英]Pass file contents to a function instead of downloading the file

我正在使用Nightmare ,以自動從Web服務下載特定於用戶的生成的csv文件,如下所示(粗略的工作流程):

  1. .goto()網站
  2. .insert()憑據和.click()登錄按鈕
  3. .wait()以加載所需的DOM元素
  4. 抓取登錄頁面以提取一些特定於請求的標識符,該標識符對於生成我感興趣的文件的下載鏈接是必需的
  5. export.php端點上調用.goto()並使用其他一些參數來下載csv文件。 由於顯示了夢Night的電子窗口,因此要求我提供存儲文件的路徑。

當前,一般的總體工作流程如下:

  1. 使用Nightmare下載(並保存)文件
  2. 使用readFileSync()將文件讀取為字符串
  3. 使用data-forge-js pandasjs data-forge-jspandasjsd3-dsv分析數據

通過將文件的內容直接傳遞到數據分析,我想擺脫在步驟1中保存文件並在步驟2中讀取該本地文件的過程。我不想在本地存儲原始的csv文件。 由於我不想在生產中晚些時候啟用Nightmares Electron Window,因此我正在尋找一種將文件內容直接傳遞給數據處理功能並擺脫那些不必要的步驟的方法。

您可以使用window.URL對象方法存儲數據。 以下內容檢索二進制blob,但您可以使用content-types和response-types返回字符串。

        xmlhttp.open('GET', PHOTO_URL, true);
        xmlhttp.responseType = 'blob';

        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4) {
                if (xmlhttp.status == 200) {
                    var blob = xmlhttp.response;
                    photoImg.src = window.URL.createObjectURL(blob);
                    setTimeout(setOnCampusImage,0);     
                } else {
                    photoImg.src = 'unknown.png';
                }
            }
        }

暫無
暫無

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

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