当前位置: 首页 > 知识库问答 >
问题:

如何在codeigniter中单击链接下载文本文件

符懿轩
2023-03-14

我有文本文件包含的CSV文件格式的样本,我希望我的用户可以下载一个链接点击该文件。

此文件驻留在此文件夹结构中:

资产-

这是我一直尝试的代码:

<?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结构,我只需要我在文本文件中编写的文本。

请问问题出在哪里?

共有3个答案

司马彬
2023-03-14

就这样吧

其他文件。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);
 ?>

some_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>
伯丁雷
2023-03-14

您可以这样做,它不会重定向您,也适用于较大的文件。

在控制器“controller.php”中

function downloadFile(){
        $yourFile = "Sample-CSV-Format.txt";
        $file = @fopen($yourFile, "rb");

        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename=TheNameYouWant.txt');
        header('Expires: 0');
        header('Cache-Control: must-revalidate');
        header('Pragma: public');
        header('Content-Length: ' . filesize($yourFile));
        while (!feof($file)) {
            print(@fread($file, 1024 * 8));
            ob_flush();
            flush();
        }
}

在您的视图“view.php”中

<a href="<?=base_url("Controller/downloadFile")?>">Download</a>
冀景明
2023-03-14

您只需通过HTML5下载一个属性就可以做到这一点。只需在下载链接中添加这一行。

<a href="<?php echo base_url();?>assets/csv/Sample-CSV-Format.txt" download="Sample-CSV-Format.txt"> HERE </a>
 类似资料:
  • 问题内容: 假设我的网页上有这些元素。 我想单击带有文本的链接。如何使用 链接文本 来识别或单击该元素,而没有任何独特的属性,例如id或class。 在.Net中,我可以使用。nightwatch.js中的等效项是什么 问题答案: 定位器在内部使用XPath。 因此,使用XPath单击示例中的第二个链接: 请注意,根据内部HTML的不同,您可能需要连接子级并修剪空格:

  • 如何在appium中点击textview中文本链接 为了前任。我有一个字符串而没有一个帐户?注册表 只有注册有一个链接其他文本是禁用的,当我点击注册它导航到注册屏幕。 但我不能点击注册。

  • 我想解析以下网站的地址:https://filialen.migros.ch/de/center:46.8202、6.9575/zoom:8/ null 有什么建议吗? 我的问题类似于前面的问题:如何在Python中解析具有相同类名的网站的多个属性?对于Selenium-debugging:在点(X,Y)不能单击元素

  • 在我实现了一个Android应用程序的解决方案后,发布到web服务器并验证Google Order,然后发布一个下载链接。现在,我正在尝试编写一个应用程序的代码,以读取thankyou.php页面中的链接 该文件是一个“.dat”扩展名,来自某个链接。应用程序应该检索一个新页面中的链接,并让客户下载文件。

  • 问题内容: 我有一个信息列表,其中有一个文件名超链接的字段。我希望用户在单击该文件时下载该文件。 那么,如何使用PHP单击文件名来下载文件? 我使用了代码如下的ajax进行了尝试,但未下载任何文件。 download.php javascript功能 链接下载 问题答案: 那么,如何使用PHP单击文件名来下载文件? 最简单的方法应该是链接到它。

  • 问题内容: 我在网页上提供了pdf文件的链接以供下载,如下所示 问题是,当用户单击此链接时, 如果用户已安装Adobe Acrobat,则它将在Adobe Reader的同一浏览器窗口中打开文件。 如果未安装Adobe Acrobat,则弹出窗口提示用户下载文件。 但是,无论是否安装了“ Adob​​e acrobat”,我都希望它始终弹出用户下载。 请告诉我我该怎么做? 问题答案: 而不是链接到