2011-03-30 44 views
-1

我想在我的网页下载链接, 用户上传文本文件到服务器,我想下载的文件, plz帮助我,我新来的PHP,如何在PHP下载脚本

+1

你的问题非常模糊,并且没有任何细节。最好的堆栈溢出问题描述了一个用例(就像你做的那样,但是用更多的细节和更少的懒惰捷径),接下来是你目前的方法,接着是你的方法目前没有产生所需行为的方式。有时候关于这个问题的理论也会随之而来。像“我该怎么做”这样的问题并没有说明你已经做了一些研究或者自己走了,通常不会吸引有效的答案(这不是一个留言板)。祝你好运。 – 2011-03-30 09:09:57

回答

3

您需要获取mime类型和文件大小,然后在发送文件之前设置正确的标题。试试这个:

function sendFile($file) { 
    $finfo = finfo_open(FILEINFO_MIME_TYPE); 
    header('Content-type: ' . finfo_file($finfo, $file)); 
    header('Content-length: ' . filesize($file)); 
    $filename = basename($file); 
    header("Content-Disposition: attachment; filename='$filename'"); 
    fpassthru($file); 
    finfo_close($finfo); 
} 
+0

致命错误:调用未定义函数finfo_open()在... – Wh1T3h4Ck5 2011-03-30 10:11:49

+0

[finfo](http://www.php.net/manual/en/ref.fileinfo.php)是PHP 5.3+,很抱歉。如果您使用的是另一版本的PHP – chriso 2011-03-30 10:34:25

+0

+1,则使用'mime_content_type($ file)',这样做更好。顺便说一句,我使用5.2.9。 – Wh1T3h4Ck5 2011-03-30 10:37:04