【问题标题】:Opening files in a server with codeigniter/php使用 codeigniter/php 在服务器中打开文件
【发布时间】:2012-04-29 18:57:58
【问题描述】:

我想做的事: 让用户点击一个链接,它会转到一个函数,它还带有一个 GET 文件 ext 和文件 id(id 是它在服务器上的名称)。然后,该功能在新选项卡中打开该文件,如果无法打开,则下载该文件。

我尝试过的: Codeigniters read_file() 函数。 另外:

 header('Content-type: application/pdf');

 header('Content-Disposition: attachment; filename="1.pdf"');

 readfile('1.pdf');

但这不起作用。或者它确实,我不知道如何正确配置它。

文件在哪里: 有一个名为 uploads 的文件夹。上传和codeigniter的应用程序文件夹在同一级别。

我正在使用 codeigniter。文件可以是 gif、jpg 或 pdf。谢谢

【问题讨论】:

  • 标题?它不下载文件。它只是下载一个名为 1 的 pdf,当我尝试打开它时,我收到错误消息,说它坏了或其他什么。
  • 标题似乎是正确的。我不相信你会抛出错误说“它坏了或什么”:) 尝试其他浏览器,也许只是一些 PDF 插件在浏览器中打开文件而不是使用“另存为”选项下载文件。对不起我的英语
  • 是的,我一直在测试的 pdf 被证明是坏的,所以一旦我得到一个工作的,我们就会看到什么工作。 :D

标签: php file codeigniter header


【解决方案1】:

如果你想要一个新窗口:

echo "<script language='text/javascript'>
        window.open('" . $filepath . "');
      </script>";

或者只是一个重定向:

echo "<script language='text/javascript'>
        document.location = '" . $filepath . "';
     </script>";

【讨论】:

  • 否,因为如果可能的话,我希望它在用户浏览器中打开。不会下载吗?
  • 文件路径是否需要返回两个文件夹,因为它在应用程序/控制器中?
  • 如果看不到也能下载吗?
  • 使用"http://www.mysite.com/".$myfile这样的绝对路径或者使用base_url($myfile)函数
  • 第二个问题的答案是,是的。这是浏览器的行为,而不是脚本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-12
  • 1970-01-01
  • 2011-12-28
  • 2019-05-01
  • 1970-01-01
  • 2020-11-01
  • 2020-02-26
相关资源
最近更新 更多