2009-08-07 38 views
0

我在创建一个文件下载页面。此页面在请求时应提示用户下载文件。这里是页面的源代码:用php下载文件(在localhost下工作在apache上)

<?php 
header('Content-disposition: attachment; filename=zip.zip') 

header('Content-type: application/zip'); 

readfile('zip.zip'); 

?> 

这工作正常。

的问题,开始时我想文件zip.zip从那里这个脚本是在文件夹中移动。我试着用相对和绝对URL,但我总是奇怪的结果, 浏览器仍然提示文件下载,但不知何故,只是从URI转换一个奇怪的文件名,我提供的财产以后像“.._.._files_zip.zip,而不是../../files/zip.zip

任何建议,为什么出现这种情况 感谢

+2

发布一个不起作用的示例 – MitMaro 2009-08-07 20:25:24

+0

<?php header('Content-disposition:attachment;文件名=/zip.zip'); header('Content-type:application/zip'); readfile('./ zip.zip'); ?> 甚至当试图从相同的地方使用相关网址获取文件时,就像在此评论中发布的代码一样,它不工作导致下载名为“_zip.zip”的文件并不存在 感谢您的支持 – 2009-08-07 20:36:44

回答

1

使用basename得到公正的文件名:?

$file = '../../files/zip.zip'; 
header('Content-Disposition: attachment; filename='.basename($file)); 
header('Content-Type: application/zip'); 
readfile($file); 
+0

感谢为此:) 这工作了 高度赞赏的帮助 – 2009-08-07 20:49:14