[英]download a file generated by POST request with JQuery/javascript
[英]POST request to Laravel then download string as a file
我有一個ajax POST請求發送到laravel控制器,這工作正常。 我在控制器中做了一些工作,然后得到了一個字符串,其大小可能從幾百千字節到幾百兆字節不等。
我想將此字符串下載為文件,並且一直在嘗試各種方法,但是問題是,每當我使用return將字符串傳遞給其他控制器或其他頁面時,它都會將輸出返回給ajax成功。 我曾嘗試刪除成功,但仍然無法正常工作。
/*POST request*/
$.ajax({
type:"post",
url:"{{ URL::route('sshDownload') }}",
data: {
id:id
file:file,
status:"logfile"
},
success:function(data){
console.log(data);
console.log("SUCCESS");
}
});
在我的sshDownload
控制器中,我正在嘗試執行以下操作:
return Response::make($output, '200', array(
'Content-Type' => 'text/plain',
'Content-Disposition' => 'attachment; filename="file.log'
));
我什至嘗試過:
return Redirect::route('sshDownloadName')->with($output);
但最后,無論何時我使用return,它都會將數據發送回前端ajax。
如何直接從PHP下載字符串,而不是將其發送給ajax?
從您的問題中尚不清楚要解決的問題-但這聽起來像是Javascript問題,而不是Laravel問題。
當您告訴javascript發出AJAX請求時,就是在告訴瀏覽器
嘿,請在后台下載此URL,並在完成后通知我。
AJAX響應將永遠不會觸發瀏覽器頁面刷新或文件下載。 代替AJAX請求,您需要將整個瀏覽器(通過document.location
, window.open
或類似的東西)完全重定向到另一個頁面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.