我一直在尝试制作一个可以下载不同文件格式(PDF、DOC、POWER POINT 和图像)的下载页面。这适用于 pdf,但第一个问题是有时它会使我的整个系统重新启动,或者它重定向到内容不可读的其他页面。其次,不是应用程序/pdf的其他文件格式(MIME)不会只是下载,有时会下载pdf,但是当我尝试打开它时会显示一条错误消息,说它是一种错误的文件格式。以下是我用来制作下载页面的标题。
header('Content-Type: application/{$_GET['mime']}');
header("Content-Disposition:attachment; filename='{$_GET['name']}'\n");
header("Content-Length:{$_GET['size']}\n");
header('Content-Transfer-Encoding: binary');
以下是我尝试允许的各种 MIME:
$permitted = array('text/html', 'image/jpeg', 'image/png', 'image/jpg','image/gif',
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'application/pdf', 'text/plain',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'application/vnd.openxmlformatsofficedocument.presentationml.presentation');
这是(几乎)所有代码:
$flag = false;
$filepath = $_GET['path'] . $_GET['name']
foreach($permitted as $value) {
if($_GET['mime'] == $value) {
$flag=true;
break;
}
if($flag == true) {
header('Content-Type: application/{$_GET['mime']}');
header("Content-Disposition:attachment; filename='{$_GET['name']}'\n");
header("Content-Length:{$_GET['size']}\n");
header('Content-Transfer-Encoding: binary');
readfile($filepath)
}
当我在学校的项目中使用它时,我将不胜感激所有的回应,谢谢....