打开CSV文件下载HTML
答
用这样的代码:
<a href="Myfile.csv">Open</a>
,你真的没有做任何下载。但是,如果客户端浏览器无法读取/呈现文件(本例中为.csv文件),则会强制用户下载文件。要明确实施下载,您必须设置header
以告知浏览器如何处理“问题中的文件”请求。考虑这种过于简单的脚本:
PHP脚本:包含HTML标记
<?php // NOTICE THAT THERE IS NO WHITE-SPACE OR OUTPUT BEFORE <?php
// AND ALSO; NO "echo" STATEMENT AT ALL BEFORE THE if(isset()){} BLOCK.
if(isset($_GET['d'])){
$file = htmlspecialchars(trim($_GET['d']));
processDownload($file);
}
function processDownload($fileName) {
if($fileName){
$dldFile = $fileName;
if(file_exists($fileName)){
$size = @filesize($fileName);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $fileName);
header('Content-Transfer-Encoding: binary');
header('Connection: Keep-Alive');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . $size);
return TRUE;
}
}
return FALSE;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Download Example</title>
</head>
<body>
<div class="container">
<div class="col-md-12">
<!-- Myfile.csv IS IN THE SAME DIRECTORY AS THIS FILE: index.php -->
<!-- OTHERWISE; SET THE PATH TO THE CSV FILE AS VALUE OF d -->
<!-- NOTICE THAT THE LINK TO DOWNLOAD HERE IS THE SAME URL -->
<!-- WITH A QUERY PARAMETER ?d=Myfile.csv APPENDED TO IT.-->
<a href="index.php?d=Myfile.csv">Download CSV</a>
</div>
</div>
</body>
</html>
人们希望,这可能给你如何去它自己的方式线索。
好运和欢呼声;-)
答
您必须添加下面的头。
header ('Content-Type: text/csv');
答
header ('Content-Type: text/csv');
OR
设置的iframe,并把您的CSV文件的URL在里面。
的可能的复制[在PHP替代下载csv文件的获取它在浏览器中打开】(http://stackoverflow.com/questions/16188329/in-下载-CSV文件中的php-INSTEAD-OF--IT-得到开合的浏览器) –
不,它不是因为我需要它在HTML – SMH
要显示你的CSV浏览器?为什么不把它作为文本发送呢? – Brad