Home > Backend Development > PHP Tutorial > 请教header强制下载的问题

请教header强制下载的问题

WBOY
Release: 2016-06-20 12:30:46
Original
869 people have browsed it

新手不才,研究好久不知如何解决,恳请前辈解答。

<?php $file = 'http://tsmusic24.tc.QQ.com/105588684.mp3';$name = 'title';header("Content-Type: application/force-download;");header('Content-Type: audio/mpeg');header('Content-Disposition: attachment; filename='.$name.'.mp3');readfile($file);exit();?>
Copy after login


报错信息:readfile(http://tsmusic24.tc.QQ.com/105588684.mp3): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request

浏览器可正常访问该链接,使用header却无法强制下载,尝试curl访问,取得400状态码。


回复讨论(解决方案)

我机子试过,可以,不管在本地还是正式域名可以,是配置问题吧

我机子试过,可以,不管在本地还是正式域名可以,是配置问题吧



请问能贴下您的部分功能代码吗?我尝试在本地和服务器上都不能正常运行

把你的代码运行在我的本地,完全没问题,直接下载了MP3文件。


我机子试过,可以,不管在本地还是正式域名可以,是配置问题吧



请问能贴下您的部分功能代码吗?我尝试在本地和服务器上都不能正常运行

没有部分代码,就是直接复制你那段代码而已,就能下载了,所以你不用检查代码问题,从其他问题下手,比如是不是服务器的某些函数库没开,或者php下载的配置等等

把你的代码运行在我的本地,完全没问题,直接下载了MP3文件。


也就是说,下载得到的是完整大小的mp3文件?

楼上的都不要胡说!这也是下载?

203个字节就是 MP3?



我机子试过,可以,不管在本地还是正式域名可以,是配置问题吧



请问能贴下您的部分功能代码吗?我尝试在本地和服务器上都不能正常运行

没有部分代码,就是直接复制你那段代码而已,就能下载了,所以你不用检查代码问题,从其他问题下手,比如是不是服务器的某些函数库没开,或者php下载的配置等等


也就是说,下载得到的mp3文件是完整大小么?

楼上的都不要胡说!这也是下载?

203个字节就是 MP3?


浏览器打开该链接,得到的音乐文件是完整的(上M),而header强制下载得到的是报错信息(203b)

你用文本编辑器打开下载后的 title.mp3,就可看到只是些错误信息
纠正了那些错误后才能得到正确的结果

$file = 'http://tsmusic24.tc.QQ.com/105588684.mp3';readfile($file);
Copy after login


Warning:  readfile(http://tsmusic24.tc.QQ.com/105588684.mp3): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request
 in .....

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template