我在这里制作了一个文件下载程序我正在下载成功下载的excel文件但是当我打开文件时它给了我下面提到的错误 Excel无法打开该文件,因为文件格式或文件扩展名无效,这里的内容是什么
<?php
if (isset($_POST['file_name'])) {
$file_name = $_POST['file_name'];
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$file_name.'"');
readfile('mystery_folder/'.$file_name);
exit();
}
?>
<form action="indexa.php" method="post" name="downloadform">
<input name="file_name" value="My Tracker.xlsx" size="50" type="text">
<input type="submit" value="Download">
</form>
答案 0 :(得分:0)
在文件名中使用空格不是一个好主意:
value="My Tracker.xlsx"
由于缺乏能够找到它,它可能实际上并没有下载文件。您应该在没有空格的情况下重命名文件。
答案 1 :(得分:0)
尝试更改内容类型:
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
并添加:
header('Content-Transfer-Encoding: binary');
这个样本对我有用:
$file = 'sample.xlsx';
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
readfile(sprintf('./%s', $file));