【发布时间】:2014-08-29 20:19:14
【问题描述】:
我有一个 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?
【问题讨论】:
-
您的基本控制器类型是什么?