2017-04-20 92 views
0

我正在嘗試通過我的API下載文件的不同事情,該API由javascript調用(axios)。我可以看到我從api的回覆是Resource id #19,它包含正確的信息,但我現在如何下載它?通過javascript調用通過javascript下載文件

PHP代碼

$filename = "Export file"; 
$delimiter = "\t"; 
$output = fopen('php://output', 'w'); 
fwrite($output, "sep=\t" . PHP_EOL); 

// ... put stuf in document 

fclose($output); 

header('Content-Description: File Transfer'); 
header('Content-Disposition: attachment; filename=' . $filename . '.csv'); 
header('Content-Type: text/csv; charset=utf-8'); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate'); 
header('Pragma: public'); 
echo $output; // also tried readfile($output) but it triggers an error that it needs a valid path 

回答

0

PHP://輸出是一個只寫流,允許你寫入到相同的方式印刷和回聲的輸出緩衝機構。您無法從此流回讀。

我想你想用php://輸入來讀取響應正文。

+0

我不知道我理解正確的,但是,PHP腳本是坐在服務器端,並正在通過Ajax請求調用。那麼它不需要在輸出中嗎? – NealVDV

1

最後發現無法通過ajax請求下載。只需打開一個新的窗口,它的下載罰款。

實例(客戶端)

var win = window.open(`${apiPath}export`, '_blank'); 
win.focus();