如果在服务器上,则单击时不会显示文件


File does not show on click if on server

我在本地主机上有一个上传按钮,我有这个链接/按钮

链接是文件名。例如

$row[] = '<a href = "'.$info->PATH.'" class = "btn btn-sm btn-info pull-left fa  fa-question-circle" title="Show File">&nbsp Show File</a>

例如$info->PATHhttp://localhost/TLC_HR/uploads/pdf/sample.pdf

当我点击它时,它在我的本地主机中运行良好

但当我上传到服务器时,$info->PATH变成了http://123.123.123.123/TLC_HR/uploads/pdf/sample.pdf(不是真实地址)

现在,当我点击这个按钮时,文件现在下载,而不是显示文件。为什么?我所需要做的就是显示文件。

尝试

<a href="#" class = "btn btn-sm btn-info pull-left fa  fa-question-circle" title="Show File" onclick="window.open('yout-pdf-url.pdf', '_blank', 'fullscreen=yes'); return false;">&nbsp Show File</a>

这是因为服务器正在发送标头。

如果服务器发送

内容处理:附件,然后下载是正确的事情到

如果服务器发送

内容处理:内联,然后显示是的正确做法

添加内容处置:在服务器配置中内联.

正如@Satyapal Sharma所说,这可能是一个标题问题,我的建议是将您的url指向一个php页面,该页面将处理pdf的可视化,类似于以下内容:

$row[] = '<a href = "handler.php" class = "btn btn-sm btn-info pull-left fa  fa-question-circle" title="Show File">&nbsp Show File</a>

则在handler.php:中

<?php
  // retrieve your info ecc.
  $url = $info->PATH;
  $filename = 'something.pdf'
  header('Content-type: application/pdf');
  header('Content-Disposition: inline; filename="' . $filename. '"');
  header('Content-Transfer-Encoding: binary');
  header('Accept-Ranges: bytes');
  @readfile($url);
?>