日期:2014-05-17  浏览次数:20488 次

在线求助!一个下载文件的问题,大家帮下小女子呀呀呀呀~~
<?php
$file_name = 'http://5.66825.com/download/ring/000/102/0b6983e56159d5e830936096e27b2479.mp3';
$file_dir = '';
$title = '下载的铃声';
$title =str_replace('\'','',$title);

$rename = '重命名'.'_'.$title.'.mp3';
if (!file_exists($file_dir . $file_name)) { //检查文件是否存在
echo "<center><span style='font-size: 14px'>文件不存在</font></center>";
exit;
} else {
// 一下是php文件下载的重点
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Content-Type: application/force-download");//强制浏览器下载
Header("Content-Disposition: attachment; filename=\"".$rename."\"");//重命名文件
Header("Accept-Length: ".filesize($file_dir . $file_name));//文件大小
// 读取文件内容
@readfile($file_dir.$file_name);//加@不输出错误信息

?>

我现在问题是,想通过上面代码的文件下载远程的mp3文件,但是总是失败,总是提示文件不存在。
但是我如果把if判断去掉,它可以下载,但是下载的文件都是坏的(不是实质的路径文件)

------解决方案--------------------
你的代码可行,将if判断那段去掉。等它下完。
------解决方案--------------------
filesize 不支持检测远程文件,一个函数 file_get_contents() 即可