我不确定如何解决这个问题。我有一个链接,点击时将文件下载到用户计算机。该文件是PDF格式。如果我将文件复制并粘贴到桌面上,然后打开该副本,它就可以正常工作。然而,当用户下载并尝试打开时,我明白了:
这是代码:( 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>
答案 0 :(得分:1)
我会在文本编辑器或二进制编辑器中打开文件,看看里面是什么。我的盲目猜测是你会发现某种PHP通知/错误信息或其他方式污染数据。