如何使网页下载PDF,DOC,POWER POINT和图像

时间:2013-04-14 21:20:10

标签: php

我一直在尝试制作下载不同文件格式(PDF,DOC,POWER POINT和图像)的下载页面。这适用于pdf,但第一个问题是,有时它会使我的整个系统重新启动,或者重定向到内容不可读的其他页面。其次,不是application / 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)
    }

我很感谢所有回复,因为我在学校的项目中使用它,谢谢......

0 个答案:

没有答案