php header()下载

看到网上说用header()来实现下载。 但是最后还不是要返回一个服务器的地址?

但是直接返回一个服务器地址不也可以直接下载?

两者什么区别吗?

补一张用header() 调用接口返回的东西。。

clipboard.png

阅读 4.2k
5 个回答

不要返回地址
浏览器直接触发了下载操作

你给一个txt地址,
浏览器是不会下载txt的,浏览器只会在新窗口打开
如果你想下载txt,就需要用header强制下载

浏览器如何处理URL下载的文件是由content-type决定的,服务器默认解析PHP会返回text/html的content-type,如果要让下载,就必须修改content-type,也就必须要用到header()

    //下载文件名
    $file_name = $name.date('Y.m.d.H-i-s',time());
    $filename = iconv('UTF-8', 'GBK', $file_name);
    header('Content-Type: text/plain');
    header ( 'Content-Disposition: attachment;filename="' . $filename . '.txt"' ); 
    header ( 'Cache-Control: max-age=0' );
    echo "我是.txt的内容";

这个是我之前下载.txt的header,可以直接触发浏览器的下载。不太明白你的问题

推荐问题
宣传栏