ajax post 调用PHP函数,如何实现下载文件?ubuntu系统
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax post 调用PHP函数,如何实现下载文件?ubuntu系统相关的知识,希望对你有一定的参考价值。
在php里实现下载功能,下载的文件是csv,数据已经统计好了。
下载方式最好不要是存到本地 然后再下载到客户端,如果能实现客户下载后就删除服务器上的文件 那也行。
首先你不可能获取用户下载的结果,所以你不可能知道用户有没有下载,或者下载完了没有,不过你可以这样:
$content="内容";
$filename='1.csv';
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".urlencode($filename));
echo $content;
这样做根本服务器上根本不会创建文件,所以也就没必要删除。追问
用你的方法 在响应里可以看到数据,但是没有下载。因为我是接收的是post请求?
追答你用ajax的方法确实不会下载,下载应该是要浏览器访问才能,你看你能不能改下方式,直接跳转到PHP页,因为返回的是个application/force-download,所以不会真的跳转页面,只是弹出下载框。
追问我不会ajax,php经验才一个月。前台ajax用post给我传了很多参数,统计好数据之后需要保存成csv到客户端,你说的改方式,是我再写个方法,由我get调用?get我该怎么传参;还是ajax来写?能不能简单的写两行代码 参考一下。 不胜感激啊
如何在 ajax 函数调用中发送 var 以发送 POST? [复制]
【中文标题】如何在 ajax 函数调用中发送 var 以发送 POST? [复制]【英文标题】:How to send a var in ajax function call to send POST? [duplicate] 【发布时间】:2015-11-20 22:18:25 【问题描述】:我调用了一个 ajax 函数,我想发送一个 var,例如:
<a href="next.php" onclick="sendajax()">reload</a>
从我的 php 页面使用 ajax 函数 POST 发送:
<script>
function sendajax()
var xmlObj=new XMLHttpRequest();
xmlObj.open("POST","miscript.php", true);
xmlObj.setRequestHeader("content-type","application/x-www-form-urlencoded");
xmlObj.onreadystatechange = function()
if(xmlObj.readyState == 4 && xmlObj.status == 200)
document.getElementById("response").innerHTML = xmlObj.responseText;
xmlObj.send('name=Status');
</script>
如何添加这个 var 以发送喜欢的内容?:
function sendajax(myVar)
....
xmlObj.send(myVar);
我正在尝试添加这个,但只发送文本。
谢谢!
编辑 我认为我的问题不会重复,因为我想从点击的链接发送 vars,而不是像这样写到 var 中:
var params = "lorem=ipsum&name=binny";
我知道如何编写并传递它,我问:如何将此 var 发送到函数并将其添加/连接到字符串中。不使用表格..谢谢!!!!!!!
我认为我的解释是正确的。
【问题讨论】:
^ 检查第二个答案,使用 FormData 【参考方案1】:为什么不使用 jQuery?
您可以将按钮作为 this 传递给函数。
<a href="#" onclick="sendajax(this)">clickme</a>
function sendajax(button)
var myVar = $(button).html(); // Example. Take some datas from the button
$.ajax(
url: 'miscript.php',
type: 'POST',
data: param1: myVar, param2: 'something_else' ,
success:function(dataFromAjaxResponse, typeFromAjaxResponse)
// When the request was successful proceed coding here
// Variable dataFromAjaxResponse is the response (output) from your php site.
,
error: function(dataFromAjaxResponse)
console.log(dataFromAjaxResponse);
);
【讨论】:
【参考方案2】:通常,我使用 $.ajax()... 像这样:
$.ajax(
method: "POST",
url: "some.php",
data: name: "John", location: "Boston"
)
.done(function( msg )
alert( "Data Saved: " + msg );
);
见http://api.jquery.com/jquery.ajax/
【讨论】:
以上是关于ajax post 调用PHP函数,如何实现下载文件?ubuntu系统的主要内容,如果未能解决你的问题,请参考以下文章