我们希望支持我们的php页面上的一个功能,当用户点击页面上的按钮时,我们会自动生成一些数据到文件中,并将文件下载到客户端。很多网站今天都有这样的功能(例如,下载chrome映像安装在客户端机器上),如何在php中实现?如何添加支持在php页面上下载文件?
-1
A
回答
1
你的要求有点含糊(“生成一些数据”),但它会是这样的。我是ass-u-ming你的数据来自SQL查询:
<?php
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=YOUR_EXPORT.txt");
header("Pragma: no-cache");
header("Expires: 0");
$fp = fopen('php://output', 'w');
$your_query = mysql_query("select * from bla bla bla ... ");
while($codes = mysql_fetch_array($your_query)) {
$row = array();
$row[] = some data ...
fputs($fp, $row);
}
fclose($fp);
0
用按钮你的PHP页面,有按键触发打开你要编写并发送到浏览器进行下载(例如.CSV文件)的文件:
<html>
<head>
<!-- Using jquery -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$("#download_file").click(function(){
window.open("generate_a_csv_file.php","_blank");
});
</script>
</head>
<body>
<input type="button" value="Download CSV File">
</body>
</html>
然后创建另一个PHP文件,将生成的内容,用头来告诉浏览器发送的内容作为文件(在这个例子中一个名为“example_file.csv”文件会下载生成):
<?php
header('Content-disposition: attachment; filename=example_file.csv');
header('Content-type: application/force-download');
echo "line1,abc,123"."\r\n";
echo "line2,xyz,456"."\r\n";
?>
注意:确保你不输出任何高于“标题”行的内容。标题必须在其他任何内容之前输出。
相关问题
- 1. Apache PHP下载页面加载文件
- 2. 如何使用JavaScript支持加载页面服务器页面
- 3. 如何在wordpress页面上添加php文件
- 4. 如何将可下载文件添加到我的Github.io页面?
- 5. 如何在PHP中添加UTF8支持?
- 6. 如何在下载文件时保持页面不重定向?
- 7. 加载MYSQL支持的页面
- 8. 在Jquery上加载页面时下载文件
- 9. 如何加载页面加载的PHP文件(jQuery提供)
- 10. 如何在页面完全加载后加载PHP页面?
- 11. GitHub页面支持PHP吗?
- 12. 如何添加jpeg支持Heroku PHP buildpack
- 13. 如何添加DateTime类支持PHP 5.1.6
- 14. 在显示下载页面后使用php下载文件
- 15. 在c#中添加对动态文件加载器的支持
- 16. 如何通过支持库添加页脚到recyclerView支持库
- 17. 如何将主分支文件夹添加到Github页面?
- 18. 添加在页面加载
- 19. 停止下载加载页面上的文件
- 20. 如何添加页面加载后消失的加载文本
- 21. 如何在页面加载时向ASP.NET控件添加事件?
- 22. 将支持页面添加到Web商店扩展页面
- 23. 如何将usercontrol添加到由主页面文件加载的aspx页面中?
- 24. 如何加载页面,而在PHP
- 25. 想要在加载页面时加载php文件
- 26. PHP下载页面
- 27. 如何在页面加载后向yahoo网页播放器添加文件?
- 28. 在页面加载事件中下载文件?
- 29. 如何在文件上传后加载JSF页面?
- 30. 如何添加wget下载的文件?
谢谢!但是如何触发#download_file?我的意思是我没有看到按钮和脚本之间的连接... – bcbishop