下载的pdf文件无法打开 - 编码不当?

时间:2017-08-18 16:46:15

标签: php file encoding

我不确定如何解决这个问题。我有一个链接,点击时将文件下载到用户计算机。该文件是PDF格式。如果我将文件复制并粘贴到桌面上,然后打开该副本,它就可以正常工作。然而,当用户下载并尝试打开时,我明白了:

enter image description here

这是代码:( fyi:我之前对文件名进行了验证..)

$file_name = $dat->filename; //'file.avi';
    $file_url = $dat->path . $dat->url . $filename; 
    header('Content-Type:'. $dat->type);
    header("Content-disposition: attachment; filename=\"" . $file_name . "\"");
    header("filename=\"" . $file_name . "\"");
    readfile($file_url);
    exit;

我尝试了多个标题,但似乎没有任何效果。这个编码我做错了什么?在我看来,该文件是有效的,应该是一个简单的副本到用户机器,就像我在本地工作的副本一样。

更新

我按照Marcin的建议打开了文件,在Sublime中。这就是我得到的......没有身体?

<!DOCTYPE html>
<html lang="en">
    <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <link rel="stylesheet" type="text/css" href="/assets/jQuery/jquery-ui-1.12.1/jquery-ui.min.css">
    <script src="/assets/jQuery/jquery-3.2.1.min.js"></script>
    <script src="/assets/jQuery/jquery-ui-1.12.1/jquery-ui.min.js"></script>
    <script src="/assets/pdfObject/pdfObject.js"></script>
    <style>
        body{
            overflow: hidden;
        }
        .pdfobject-container {
            height: 99vh;
            overflow: hidden;
        }
    </style>
    <title></title>
</head>
    <body>

1 个答案:

答案 0 :(得分:1)

我会在文本编辑器或二进制编辑器中打开文件,看看里面是什么。我的盲目猜测是你会发现某种PHP通知/错误信息或其他方式污染数据。