php linux下文件未下载完整,PHP文件下载在Linux中不起作用

我正在使用下面的代码从服务器下载mp3文件。该代码在我的本地系统(Windows操作系统)中正常工作。PHP文件下载在Linux中不起作用

但是,当我将代码移动到服务器(Linux)时,出现文件未找到错误。我相信,文件路径是否正确,文件是可读

if ($fd = fopen ($filePath, "r")) {

$fsize = filesize($filePath);

$path_parts = pathinfo($filePath);

$ext = strtolower($path_parts["extension"]);

switch ($ext) {

case "mp3":

header("Content-type: audio/mpeg"); // add here more headers for diff. extensions

header("Content-Disposition: attachment; filename=\"".$originalFileName."\""); // use 'attachment' to force a download

break;

default;

header("Content-type: application/octet-stream");

header("Content-Disposition: filename=\"".$originalFileName."\"");

}

header("Content-length: $fsize");

header("Cache-control: private"); //use this to open files directly

while(!feof($fd)) {

$buffer = fread($fd, 2048);

echo $buffer;

}

}

fclose ($fd)

2012-05-23

codlib

+1

我经历过这样的事情,问题是与文件名称,如果我没有错,Linux是区分大小写的文件扩展名,所以你试图访问文件'bla.JPG'与'bla.jpg'完全不同,请检查这个 –

+0

你从哪里得到错误,fopen失败? –

+1

也可能存在一些文件权限问题。检查下用户httpd运行和什么权限分配/所有者到您要下载的文件 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值