php 下载图片并命名,在PHP中使用Header重命名下载文件

我有一个链接指向我的网站上的音乐文件,现在该文件的名称在上传时被哈希,所以我想使用原来的文件名,我已经存储在我的数据库中,我做了一些研究,发现这个新的'为'a'标签下载'属性,但只适用于更高版本的Firefox和Chrome,它不能在ie中工作,也不能与下载管理器一起使用,所以我在网上查了一下,发现了关于标题然后我执行。 现在我将文件名改为好了,但是无论我尝试下载的音乐文件如何,音乐文件都会保存为'.35kb'文件大小。 这是我的代码:if (isset($_REQUEST['download']))

{

$download_id = $_REQUEST['download'];

$db = new MysqliDatabase(ConnectionString);

$result = array();

$result = $db->query_one("SELECT TrackID, ma.ArtisteName, FeaturedArtistes,

mc.Category, TrackName

FROM `musictracks` mt

LEFT JOIN `musiccategories` mc

ON mt.CategoryID = mc.CategoryID

LEFT JOIN `musicartistes` ma

ON mt.ArtisteID = ma.ArtisteID

WHERE mt.TrackID = '$download_id';");

$filename = $result->TrackPath;

$outputfilename = $result->ArtisteName . ' ft. ' . $result->FeaturedArtistes . ' - ' . $result->TrackName . '.mp3';

header("Content-Type: audio/mpeg");

header("Content-Disposition: attachment; filename="" . basename($outputfilename) . "";" );

header("Content-Transfer-Encoding: binary");

readfile("$filename");

}

这是下载链接:download

我的PHP有点生疏,但我可以考虑一下你的代码,没有内容长度的头。 更新你的代码,看看是否可行:if (isset($_REQUEST['download'])) {

{

$download_id = $_REQUEST['download'];

// ...

$filename = $result->TrackPath;

$outputfilename = $result->ArtisteName . ' ft. ' . $result->FeaturedArtistes . ' - ' . $result->TrackName . '.mp3';

if (file_exists($filename)) {

header("Content-Type: audio/mpeg");

header("Content-Disposition: attachment; filename="" . basename($outputfilename) . "";" );

header("Content-Transfer-Encoding: binary");

header('Content-Length: ' . filesize($filename));

ob_clean();

flush();

readfile($filename);

exit;

}

}

}

请注意,我们使用flush(); 在开始下载实际文件之前将标题发送到浏览器。 并且我还添加了一个if (file_exists($filename))以确保我们有要发送的文件。 我建议你在那里放一个else子句给你一些东西,如果你没有像你期望的那样的文件,会显示给你...

header("Content-Type: application/force-download");

header("Content-Type:audio/mpeg");

header("Content-Type: application/download");;

header("Content-Disposition: attachment;filename=".$file_name);

请用curl下载你的mp3文件

以下是供您参考的示例代码<?php

if(isset($_REQUEST['inputurl']) && $_REQUEST['inputurl']!="") {

$file = $_REQUEST['inputurl'];

header("Content-type: application/x-file-to-save");

header("Content-Disposition: attachment; filename=".basename($file));

readfile($file);

}

?>

可能会帮助你。

链接地址: http://www.djcxy.com/p/72231.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值