Php 如何在codeigniter中单击链接下载文本文件
我有文本文件包含的CSV文件格式的样本,我希望我的用户可以下载一个链接点击该文件 此文件位于以下文件夹结构中: 资产->csv->Sample-csv-Format.txt 这是我一直尝试的代码:Php 如何在codeigniter中单击链接下载文本文件,php,codeigniter,csv,Php,Codeigniter,Csv,我有文本文件包含的CSV文件格式的样本,我希望我的用户可以下载一个链接点击该文件 此文件位于以下文件夹结构中: 资产->csv->Sample-csv-Format.txt 这是我一直尝试的代码: <?php $file_name = "Sample-CSV-Format.txt"; // extracting the extension: $ext = substr($file_name, strpos($file_name,'.') + 1); header
<?php
$file_name = "Sample-CSV-Format.txt";
// extracting the extension:
$ext = substr($file_name, strpos($file_name,'.') + 1);
header('Content-disposition: attachment; filename=' . $file_name);
if (strtolower($ext) == "txt") {
// works for txt only
header('Content-type: text/plain');
} else {
// works for all
header('Content-type: application/' . $ext);extensions except txt
}
readfile($decrypted_file_path);
?>
<p class="text-center">Download the Sample file <a href="<?php echo base_url();?>assets/csv/Sample-CSV-Format.txt">HERE</a> It has a sample of one entry</p>
下载示例文件,其中包含一个条目的示例
此代码是在页面加载时下载文件,而不是单击链接。另外,它正在下载页面的整个html结构,我只想要我在文本文件中所写的文本
请告诉我问题出在哪里?这样说吧
someother_file.php
<?php
$file_name = "Sample-CSV-Format.txt";
// extracting the extension:
$ext = substr($file_name, strpos($file_name,'.')+1);
header('Content-disposition: attachment; filename='.$file_name);
if(strtolower($ext) == "txt")
{
header('Content-type: text/plain'); // works for txt only
}
else
{
header('Content-type: application/'.$ext); // works for all extensions except txt
}
readfile($decrypted_file_path);
?>
一些_html _page.html
<p class="text-center">Download the Sample file <a href="<?php echo base_url();?>/someother_file.php">HERE</a> It has a sample of one entry</p>
下载示例文件,其中包含一个条目的示例
您可以这样做,它不会重定向您,也适用于较大的文件
在控制器“controller.php”中
在您的视图“view.php”中
您只需通过HTML5下载属性即可完成此操作。只需在下载链接中添加这一行
<a href="<?php echo base_url();?>assets/csv/Sample-CSV-Format.txt" download="Sample-CSV-Format.txt"> HERE </a>
在我看来,将代码下载到客户端比编写控制器方法更好。
只需将下载代码移动到另一个功能中,并使链接指向该功能即可。此外,当您设置标题时,下载中还包括以下内容。这就是为什么您需要单独的函数(一个用于查看,另一个用于下载)。您的意思是
标记上面写的任何内容都需要进入控制器函数,并且链接路径将指向该函数?是的。这可能也会有帮助:thanx尝试一下..我可以把这个文件的内容放在一个控制器函数中吗;controllername/fn name instedi无法打开流:HTTP请求失败!无论我尝试了什么,都找不到HTTP/1.1 404。这段代码最终帮助我修复了它。但现在文件正在无限期下载。
<a href="<?=base_url("Controller/downloadFile")?>">Download</a>
<a href="<?php echo base_url();?>assets/csv/Sample-CSV-Format.txt" download="Sample-CSV-Format.txt"> HERE </a>