`

php提供文件下载(header)

    博客分类:
  • php
阅读更多

本文参考:http://www.laruence.com/2012/05/02/2613.html;http://www.52tzj.com/<?php

    $file = "/tmp/中文名.tar.gz";
 
    $filename = basename($file);
 
    header("Content-type: application/octet-stream");
 
    //处理中文文件名
    $ua = $_SERVER["HTTP_USER_AGENT"];
    $encoded_filename = rawurlencode($filename);
    if (preg_match("/MSIE/", $ua)) {
     header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');
    } else if (preg_match("/Firefox/", $ua)) {
     header("Content-Disposition: attachment; filename*=\"utf8''" . $filename . '"');
    } else {
     header('Content-Disposition: attachment; filename="' . $filename . '"');
    }
 虽然PHP的readfile尝试实现的尽量高效, 不占用PHP本身的内存, 但是实际上它还是需要采用MMAP(如果支持), 或者是一个固定的buffer去循环读取文件, 直接输出.
输出的时候, 如果是Apache + PHP mod, 那么还需要发送到Apache的输出缓冲区. 最后才发送给用户. 而对于Nginx + fpm如果他们分开部署的话, 那还会带来额外的网络IO.
 //让Xsendfile发送文件,X-Sendfile头将被Apache处理, 并且把响应的文件直接发送给Client.

header("X-Sendfile: $file");

在此补充一些header知识:

函数功能
    送出HTTP协议的头信息到用户浏览器。
    header() 函数向客户端发送原始的 HTTP 报头。

函数语法
    header (string, replace, http_response_code)

函数返回值:整数

函数种类:网络系统

参数及说明:
    参数                 描述 
    string               必需。规定要发送的报头字符串。 
    replace              可选。指示该报头是否替换之前的报头,或添加第二个报头。默认是 true(替换)。false(允许相同类型的多个报头)。
    http_response_code   可选。把 HTTP 响应代码强制为指定的值。(PHP 4 以及更高版本可用)

函数内容说明:
    标头(header)是服务器以 HTTP 协议传 HTML 资料到浏览器前所送出的字符串,在标头与 HTML 文件之间尚需空一行分隔。
    在 PHP 中送回 HTML 资料前,需先传完所有的标头。

注意事项
    传统的标头一定包含下面三种标头之一,并只能出现一次。
    Content-Type: xxxx/yyyy
    location: xxxx:yyyy/zzzz
    Status: nnn xxxxxx
    在新的多型标头规格 (Multipart MIME) 方可以出现二次以上。
    从 PHP 4.4 之后,该函数防止一次发送多个报头。这是对头部注入攻击的保护措施。
    认识到一点很重要,即必须在任何实际的输出被发送之前调用 header() 函数(在 PHP 4 以及更高的版本中,您可以使用输出缓存来解决此问题)。

重点注意:
    要提醒大家注意一点,所有头信息都必须在体内容之前,如果一旦有 任何输出了的话,header函数写的 头信息就没用了。
    比如,在文件最开头的<?php处,如果前面有空格或者有空行,那header函数就没用了。
    例如:
        <html>
        <?php
            //结果出错
            //“<html>”字符在调用 header() 之前已存在输出
            header('Location: http://www.example.com/');
        ?>
    (其实可以通过设置:output_buffer 来解决,anyway),为什么这样,可以看看HTTP协议,很简单。

使用范例:
    1、跳转:
        header('Location: http://www.example.com/');

    2、指定内容:
        header('Content-type: application/pdf');

    3、附件:
        //指定内容为附件
        header('Content-Disposition: attachment; filename="downloaded.pdf"');
        //打开文件,并输出
        readfile('original.pdf');

    范例一:本例用来重定向用户页面到PHP的官方网站。
        <?php
        Header("Location:http://www.php.net");
        exit;
        ?>

    范例二:欲让用户每次都能得到最新的资料,而不是Proxy或cache中的资料,可以使用下列的标头。
        <?php
        //Date in the past
        header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
        header("Cache-Control: no-cache");
        header("Pragma: no-cache");
        ?>

    范例三:让用户的浏览器出现找不到文件的信息(404 错误)。
        <?php
        header("Status:404 NotFound");
        ?>

附加知识:
    <?php
    header('Content-type: application/image/pjpeg');                         //输出的类型
    header('Content-Disposition: attachment; filename="downloaded.jpg"');    //下载显示的名字,注意格式。
    readfile('my.jpg');
    //并将这个文件以前面header发送信息设定的类型输出,从而会弹出一个下载框。
    //就是把服务器上的my.jpg下载下来,下载显示和保存的名字默认是downloaded.jpg。
    ?>

    文档类型 和 服务器响应HTTP的类型
    上面的这个可以在上传文件的类型中对应上,下面的差了点。(原文下面的是用来写在文件头上的,来确定该文件是什么类型。)

    'chm'=>'application/octet-stream',
    'ppt'=>'application/vnd.ms-powerpoint',
    'xls'=>'application/vnd.ms-excel',
    'doc'=>'application/msword',
    'exe'=>'application/octet-stream',
    'rar'=>'application/octet-stream',
    'js'=>"javascript/js",
    'css'=>"text/css",
    'hqx'=>"application/mac-binhex40",
    'bin'=>"application/octet-stream",
    'oda'=>"application/oda",
    'pdf'=>"application/pdf",
    'ai'=>"application/postsrcipt",
    'eps'=>"application/postsrcipt",
    'es'=>"application/postsrcipt",
    'rtf'=>"application/rtf",
    'mif'=>"application/x-mif",
    'csh'=>"application/x-csh",
    'dvi'=>"application/x-dvi",
    'hdf'=>"application/x-hdf",
    'nc'=>"application/x-netcdf",
    'cdf'=>"application/x-netcdf",
    'latex'=>"application/x-latex",
    'ts'=>"application/x-troll-ts",
    'src'=>"application/x-wais-source",
    'zip'=>"application/zip",
    'bcpio'=>"application/x-bcpio",
    'cpio'=>"application/x-cpio",
    'gtar'=>"application/x-gtar",
    'shar'=>"application/x-shar",
    'sv4cpio'=>"application/x-sv4cpio",
    'sv4crc'=>"application/x-sv4crc",
    'tar'=>"application/x-tar",
    'ustar'=>"application/x-ustar",
    'man'=>"application/x-troff-man",
    'sh'=>"application/x-sh",
    'tcl'=>"application/x-tcl",
    'tex'=>"application/x-tex",
    'texi'=>"application/x-texinfo",
    'texinfo'=>"application/x-texinfo",
    't'=>"application/x-troff",
    'tr'=>"application/x-troff",
    'roff'=>"application/x-troff",
    'shar'=>"application/x-shar",
    'me'=>"application/x-troll-me",
    'ts'=>"application/x-troll-ts",
    'gif'=>"image/gif",
    'jpeg'=>"image/pjpeg",
    'jpg'=>"image/pjpeg",
    'jpe'=>"image/pjpeg",
    'ras'=>"image/x-cmu-raster",
    'pbm'=>"image/x-portable-bitmap",
    'ppm'=>"image/x-portable-pixmap",
    'xbm'=>"image/x-xbitmap",
    'xwd'=>"image/x-xwindowdump",
    'ief'=>"image/ief",
    'tif'=>"image/tiff",
    'tiff'=>"image/tiff",
    'pnm'=>"image/x-portable-anymap",
    'pgm'=>"image/x-portable-graymap",
    'rgb'=>"image/x-rgb",
    'xpm'=>"image/x-xpixmap",
    'txt'=>"text/plain",
    'c'=>"text/plain",
    'cc'=>"text/plain",
    'h'=>"text/plain",
    'html'=>"text/html",
    'htm'=>"text/html",
    'htl'=>"text/html",
    'rtx'=>"text/richtext",
    'etx'=>"text/x-setext",
    'tsv'=>"text/tab-separated-values",
    'mpeg'=>"video/mpeg",
    'mpg'=>"video/mpeg",
    'mpe'=>"video/mpeg",
    'avi'=>"video/x-msvideo",
    'qt'=>"video/quicktime",
    'mov'=>"video/quicktime",
    'moov'=>"video/quicktime",
    'movie'=>"video/x-sgi-movie",
    'au'=>"audio/basic",
    'snd'=>"audio/basic",
    'wav'=>"audio/x-wav",
    'aif'=>"audio/x-aiff",
    'aiff'=>"audio/x-aiff",
    'aifc'=>"audio/x-aiff",
    'swf'=>"application/x-shockwave-flash"
    'myz'=>"application/myz"
    
    ".*"="application/octet-stream"
    ".001"="application/x-001"
    ".301"="application/x-301"
    ".323"="text/h323"
    ".906"="application/x-906"
    ".907"="drawing/907"
    ".a11"="application/x-a11"
    ".acp"="audio/x-mei-aac"
    ".ai"="application/postscript"
    ".aif"="audio/aiff"
    ".aifc"="audio/aiff"
    ".aiff"="audio/aiff"
    ".anv"="application/x-anv"
    ".asa"="text/asa"
    ".asf"="video/x-ms-asf"
    ".asp"="text/asp"
    ".asx"="video/x-ms-asf"
    ".au"="audio/basic"
    ".avi"="video/avi"
    ".awf"="application/vnd.adobe.workflow"
    ".biz"="text/xml"
    ".bmp"="application/x-bmp"
    ".bot"="application/x-bot"
    ".c4t"="application/x-c4t"
    ".c90"="application/x-c90"
    ".cal"="application/x-cals"
    ".cat"="application/vnd.ms-pki.seccat"
    ".cdf"="application/x-netcdf"
    ".cdr"="application/x-cdr"
    ".cel"="application/x-cel"
    ".cer"="application/x-x509-ca-cert"
    ".cg4"="application/x-g4"
    ".cgm"="application/x-cgm"
    ".cit"="application/x-cit"
    ".class"="java/*"
    ".cml"="text/xml"
    ".cmp"="application/x-cmp"
    ".cmx"="application/x-cmx"
    ".cot"="application/x-cot"
    ".crl"="application/pkix-crl"
    ".crt"="application/x-x509-ca-cert"
    ".csi"="application/x-csi"
    ".css"="text/css"
    ".cut"="application/x-cut"
    ".dbf"="application/x-dbf"
    ".dbm"="application/x-dbm"
    ".dbx"="application/x-dbx"
    ".dcd"="text/xml"
    ".dcx"="application/x-dcx"
    ".der"="application/x-x509-ca-cert"
    ".dgn"="application/x-dgn"
    ".dib"="application/x-dib"
    ".dll"="application/x-msdownload"
    ".doc"="application/msword"
    ".dot"="application/msword"
    ".drw"="application/x-drw"
    ".dtd"="text/xml"
    ".dwf"="Model/vnd.dwf"
    ".dwf"="application/x-dwf"
    ".dwg"="application/x-dwg"
    ".dxb"="application/x-dxb"
    ".dxf"="application/x-dxf"
    ".edn"="application/vnd.adobe.edn"
    ".emf"="application/x-emf"
    ".eml"="message/rfc822"
    ".ent"="text/xml"
    ".epi"="application/x-epi"
    ".eps"="application/x-ps"
    ".eps"="application/postscript"
    ".etd"="application/x-ebx"
    ".exe"="application/x-msdownload"
    ".fax"="image/fax"
    ".fdf"="application/vnd.fdf"
    ".fif"="application/fractals"
    ".fo"="text/xml"
    ".frm"="application/x-frm"
    ".g4"="application/x-g4"
    ".gbr"="application/x-gbr"
    ".gcd"="application/x-gcd"
    ".gif"="image/gif"
    ".gl2"="application/x-gl2"
    ".gp4"="application/x-gp4"
    ".hgl"="application/x-hgl"
    ".hmr"="application/x-hmr"
    ".hpg"="application/x-hpgl"
    ".hpl"="application/x-hpl"
    ".hqx"="application/mac-binhex40"
    ".hrf"="application/x-hrf"
    ".hta"="application/hta"
    ".htc"="text/x-component"
    ".htm"="text/html"
    ".html"="text/html"
    ".htt"="text/webviewhtml"
    ".htx"="text/html"
    ".icb"="application/x-icb"
    ".ico"="image/x-icon"
    ".ico"="application/x-ico"
    ".iff"="application/x-iff"
    ".ig4"="application/x-g4"
    ".igs"="application/x-igs"
    ".iii"="application/x-iphone"
    ".img"="application/x-img"
    ".ins"="application/x-internet-signup"
    ".isp"="application/x-internet-signup"
    ".IVF"="video/x-ivf"
    ".java"="java/*"
    ".jfif"="image/jpeg"
    ".jpe"="image/jpeg"
    ".jpe"="application/x-jpe"
    ".jpeg"="image/jpeg"
    ".jpg"="image/jpeg"
    ".jpg"="application/x-jpg"
    ".js"="application/x-javascript"
    ".jsp"="text/html"
    ".la1"="audio/x-liquid-file"
    ".lar"="application/x-laplayer-reg"
    ".latex"="application/x-latex"
    ".lavs"="audio/x-liquid-secure"
    ".lbm"="application/x-lbm"
    ".lmsff"="audio/x-la-lms"
    ".ls"="application/x-javascript"
    ".ltr"="application/x-ltr"
    ".m1v"="video/x-mpeg"
    ".m2v"="video/x-mpeg"
    ".m3u"="audio/mpegurl"
    ".m4e"="video/mpeg4"
    ".mac"="application/x-mac"
    ".man"="application/x-troff-man"
    ".math"="text/xml"
    ".mdb"="application/msaccess"
    ".mdb"="application/x-mdb"
    ".mfp"="application/x-shockwave-flash"
    ".mht"="message/rfc822"
    ".mhtml"="message/rfc822"
    ".mi"="application/x-mi"
    ".mid"="audio/mid"
    ".midi"="audio/mid"
    ".mil"="application/x-mil"
    ".mml"="text/xml"
    ".mnd"="audio/x-musicnet-download"
    ".mns"="audio/x-musicnet-stream"
    ".mocha"="application/x-javascript"
    ".movie"="video/x-sgi-movie"
    ".mp1"="audio/mp1"
    ".mp2"="audio/mp2"
    ".mp2v"="video/mpeg"
    ".mp3"="audio/mp3"
    ".mp4"="video/mpeg4"
    ".mpa"="video/x-mpg"
    ".mpd"="application/vnd.ms-project"
    ".mpe"="video/x-mpeg"
    ".mpeg"="video/mpg"
    ".mpg"="video/mpg"
    ".mpga"="audio/rn-mpeg"
    ".mpp"="application/vnd.ms-project"
    ".mps"="video/x-mpeg"
    ".mpt"="application/vnd.ms-project"
    ".mpv"="video/mpg"
    ".mpv2"="video/mpeg"
    ".mpw"="application/vnd.ms-project"
    ".mpx"="application/vnd.ms-project"
    ".mtx"="text/xml"
    ".mxp"="application/x-mmxp"
    ".net"="image/pnetvue"
    ".nrf"="application/x-nrf"
    ".nws"="message/rfc822"
    ".odc"="text/x-ms-odc"
    ".out"="application/x-out"
    ".p10"="application/pkcs10"
    ".p12"="application/x-pkcs12"
    ".p7b"="application/x-pkcs7-certificates"
    ".p7c"="application/pkcs7-mime"
    ".p7m"="application/pkcs7-mime"
    ".p7r"="application/x-pkcs7-certreqresp"
    ".p7s"="application/pkcs7-signature"
    ".pc5"="application/x-pc5"
    ".pci"="application/x-pci"
    ".pcl"="application/x-pcl"
    ".pcx"="application/x-pcx"
    ".pdf"="application/pdf"
    ".pdf"="application/pdf"
    ".pdx"="application/vnd.adobe.pdx"
    ".pfx"="application/x-pkcs12"
    ".pgl"="application/x-pgl"
    ".pic"="application/x-pic"
    ".pko"="application/vnd.ms-pki.pko"
    ".pl"="application/x-perl"
    ".plg"="text/html"
    ".pls"="audio/scpls"
    ".plt"="application/x-plt"
    ".png"="image/png"
    ".png"="application/x-png"
    ".pot"="application/vnd.ms-powerpoint"
    ".ppa"="application/vnd.ms-powerpoint"
    ".ppm"="application/x-ppm"
    ".pps"="application/vnd.ms-powerpoint"
    ".ppt"="application/vnd.ms-powerpoint"
    ".ppt"="application/x-ppt"
    ".pr"="application/x-pr"
    ".prf"="application/pics-rules"
    ".prn"="application/x-prn"
    ".prt"="application/x-prt"
    ".ps"="application/x-ps"
    ".ps"="application/postscript"
    ".ptn"="application/x-ptn"
    ".pwz"="application/vnd.ms-powerpoint"
    ".r3t"="text/vnd.rn-realtext3d"
    ".ra"="audio/vnd.rn-realaudio"
    ".ram"="audio/x-pn-realaudio"
    ".ras"="application/x-ras"
    ".rat"="application/rat-file"
    ".rdf"="text/xml"
    ".rec"="application/vnd.rn-recording"
    ".red"="application/x-red"
    ".rgb"="application/x-rgb"
    ".rjs"="application/vnd.rn-realsystem-rjs"
    ".rjt"="application/vnd.rn-realsystem-rjt"
    ".rlc"="application/x-rlc"
    ".rle"="application/x-rle"
    ".rm"="application/vnd.rn-realmedia"
    ".rmf"="application/vnd.adobe.rmf"
    ".rmi"="audio/mid"
    ".rmj"="application/vnd.rn-realsystem-rmj"
    ".rmm"="audio/x-pn-realaudio"
    ".rmp"="application/vnd.rn-rn_music_package"
    ".rms"="application/vnd.rn-realmedia-secure"
    ".rmvb"="application/vnd.rn-realmedia-vbr"
    ".rmx"="application/vnd.rn-realsystem-rmx"
    ".rnx"="application/vnd.rn-realplayer"
    ".rp"="image/vnd.rn-realpix"
    ".rpm"="audio/x-pn-realaudio-plugin"
    ".rsml"="application/vnd.rn-rsml"
    ".rt"="text/vnd.rn-realtext"
    ".rtf"="application/msword"
    ".rtf"="application/x-rtf"
    ".rv"="video/vnd.rn-realvideo"
    ".sam"="application/x-sam"
    ".sat"="application/x-sat"
    ".sdp"="application/sdp"
    ".sdw"="application/x-sdw"
    ".sit"="application/x-stuffit"
    ".slb"="application/x-slb"
    ".sld"="application/x-sld"
    ".slk"="drawing/x-slk"
    ".smi"="application/smil"
    ".smil"="application/smil"
    ".smk"="application/x-smk"
    ".snd"="audio/basic"
    ".sol"="text/plain"
    ".sor"="text/plain"
    ".spc"="application/x-pkcs7-certificates"
    ".spl"="application/futuresplash"
    ".spp"="text/xml"
    ".ssm"="application/streamingmedia"
    ".sst"="application/vnd.ms-pki.certstore"
    ".stl"="application/vnd.ms-pki.stl"
    ".stm"="text/html"
    ".sty"="application/x-sty"
    ".svg"="text/xml"
    ".swf"="application/x-shockwave-flash"
    ".tdf"="application/x-tdf"
    ".tg4"="application/x-tg4"
    ".tga"="application/x-tga"
    ".tif"="image/tiff"
    ".tif"="application/x-tif"
    ".tiff"="image/tiff"
    ".tld"="text/xml"
    ".top"="drawing/x-top"
    ".torrent"="application/x-bittorrent"
    ".tsd"="text/xml"
    ".txt"="text/plain"
    ".uin"="application/x-icq"
    ".uls"="text/iuls"
    ".vcf"="text/x-vcard"
    ".vda"="application/x-vda"
    ".vdx"="application/vnd.visio"
    ".vml"="text/xml"
    ".vpg"="application/x-vpeg005"
    ".vsd"="application/vnd.visio"
    ".vsd"="application/x-vsd"
    ".vss"="application/vnd.visio"
    ".vst"="application/vnd.visio"
    ".vst"="application/x-vst"
    ".vsw"="application/vnd.visio"
    ".vsx"="application/vnd.visio"
    ".vtx"="application/vnd.visio"
    ".vxml"="text/xml"
    ".wav"="audio/wav"
    ".wax"="audio/x-ms-wax"
    ".wb1"="application/x-wb1"
    ".wb2"="application/x-wb2"
    ".wb3"="application/x-wb3"
    ".wbmp"="image/vnd.wap.wbmp"
    ".wiz"="application/msword"
    ".wk3"="application/x-wk3"
    ".wk4"="application/x-wk4"
    ".wkq"="application/x-wkq"
    ".wks"="application/x-wks"
    ".wm"="video/x-ms-wm"
    ".wma"="audio/x-ms-wma"
    ".wmd"="application/x-ms-wmd"
    ".wmf"="application/x-wmf"
    ".wml"="text/vnd.wap.wml"
    ".wmv"="video/x-ms-wmv"
    ".wmx"="video/x-ms-wmx"
    ".wmz"="application/x-ms-wmz"
    ".wp6"="application/x-wp6"
    ".wpd"="application/x-wpd"
    ".wpg"="application/x-wpg"
    ".wpl"="application/vnd.ms-wpl"
    ".wq1"="application/x-wq1"
    ".wr1"="application/x-wr1"
    ".wri"="application/x-wri"
    ".wrk"="application/x-wrk"
    ".ws"="application/x-ws"
    ".ws2"="application/x-ws"
    ".wsc"="text/scriptlet"
    ".wsdl"="text/xml"
    ".wvx"="video/x-ms-wvx"
    ".xdp"="application/vnd.adobe.xdp"
    ".xdr"="text/xml"
    ".xfd"="application/vnd.adobe.xfd"
    ".xfdf"="application/vnd.adobe.xfdf"
    ".xhtml"="text/html"
    ".xls"="application/vnd.ms-excel"
    ".xls"="application/x-xls"
    ".xlw"="application/x-xlw"
    ".xml"="text/xml"
    ".xpl"="audio/scpls"
    ".xq"="text/xml"
    ".xql"="text/xml"
    ".xquery"="text/xml"
    ".xsd"="text/xml"
    ".xsl"="text/xml"
    ".xslt"="text/xml"
    ".xwd"="application/x-xwd"
    ".x_b"="application/x-x_b"
    ".x_t"="application/x-x_t"
    ".myz"="application/myz"

 

分享到:
评论

相关推荐

    php文件流下载.txt

    根据提供的文件信息,我们可以深入探讨PHP文件流下载的相关知识点,包括其原理、实现方式以及应用场景等。 ### PHP文件流下载的基本概念 文件流下载是指在Web应用中将服务器上的文件发送到客户端(如浏览器),供...

    zencart模板系统文件笔记2:tpl_header.php.pdf

    ### Zencart模板系统文件笔记2:tpl_header.php #### 文件概述 `tpl_header.php`是ZenCart电子商务平台中一个非常重要的模板文件,主要用于展示网站头部的信息,如背景图片、Logo、登录链接、搜索模块等内容。它...

    header中对于文件输出的相关设置.pdf

    在Web开发中,服务器端有时需要向客户端(通常是浏览器)发送文件,比如用户请求下载一个PDF、图片或文档。为了实现这一功能,开发者需要在HTTP响应中设置特定的Header信息来指导浏览器如何处理这些文件。本文将详细...

    php文件下载类带实例

    首先,我们来理解一下PHP文件下载的基本原理。当用户点击下载链接时,服务器会发送一个HTTP响应给客户端(通常是浏览器),这个响应包含了文件的内容和一些HTTP头信息,比如Content-Type定义了文件的MIME类型,...

    PHP 下载函数 下载重命名 保护真实文件地址

    为了实现这个功能,PHP提供了多种方法,同时为了保护服务器上的真实文件地址不被用户获取,我们可以使用一些技巧,比如重命名文件或者使用伪装的下载链接。本文将详细讲解如何在PHP中实现下载功能,以及如何在下载...

    PHP通过header实现文本文件下载的代码

    在PHP中,通过header函数实现文本文件的下载是一种常见的技术手段。当用户点击一个文本文件的链接时,通常浏览器会尝试直接打开文件,但通过设置HTTP头部信息,我们可以强制浏览器弹出下载对话框,让用户选择保存...

    PHP文件上传和下载

    PHP提供了`$_FILES`全局数组来处理上传的文件。当用户通过HTML表单提交包含`&lt;input type="file"&gt;`的字段时,服务器端的PHP脚本可以获取到上传文件的相关信息。以下是一个简单的文件上传示例: ```php &lt;?php if(is...

    PHP——文件下载

    文件下载通常涉及到将服务器上的文件提供给用户下载,而不是在浏览器中直接显示。本篇将详细讲解如何使用PHP进行文件下载,并分析给定代码的工作原理。 首先,我们要明白,一般的文件下载是通过浏览器直接访问URL来...

    PHP大文件下载解决

    传统的PHP文件下载方式是通过`readfile()`或`file_get_contents()`函数读取整个文件内容并输出到浏览器。然而,这种方法对于大文件并不适用,因为它会一次性加载整个文件到内存中,可能导致内存溢出。 为了解决这个...

    php通用文件下载,适用于php5

    在PHP编程中,文件下载是一个常见的需求,尤其是在Web应用程序中。`PHP通用文件下载`指的是通过PHP脚本来处理用户请求,使他们能够安全地下载服务器上的...同时,提供的其他文件为测试和理解下载过程提供了辅助材料。

    PHP实现浏览器访问地址栏下载文件功能 PHP输出文件内容到网页,可浏览可下载.zip

    这个功能在实际应用中非常有用,例如,当你有一个网站需要提供文件下载服务,或者用户需要保存服务器上的某些资源时。通过PHP实现,我们可以灵活控制下载过程,如添加权限检查、限制下载速度等。 值得注意的是,...

    制作个php网页,当访问该PHP页面时自动下载文件,本例为下载APK APP安装包.zip

    在PHP中创建一个网页以实现访问时自动下载文件的功能,主要涉及到HTTP协议、文件系统操作以及用户代理检测等知识。以下是对这些知识点的详细说明: 1. **HTTP响应头控制**: 当用户访问PHP页面时,服务器需要通过...

    php利用header函数实现文件下载时直接提示保存

    为了避免这种情况,可以使用PHP中的header函数来发送一些HTTP头部信息给浏览器,使得浏览器能够正确地处理文件下载。 使用header函数时,可以发送两个关键的头部信息: 1. Content-Type: 这个头部信息用来告诉...

    PHP文件下载

    在PHP开发中,文件下载是一项常见的...总的来说,PHP文件下载类是服务器端处理文件下载的一种高效方法,通过封装核心功能,为开发者提供了便利。在实际应用中,可以根据需求进行定制和扩展,以满足不同场景的下载需求。

    PHP使用header方式实现文件下载功能

    本文将深入讲解如何利用`header()`函数来实现PHP文件下载功能。 首先,我们需要理解`header()`函数的基本用法。`header()`函数接收一个字符串参数,这个字符串包含了要发送的HTTP头部信息。例如,你可以设置HTTP...

    php 文件下载类

    在PHP编程中,文件下载是常见的功能之一,用于让用户从服务器获取文件。为了方便和高效地处理文件下载,开发者通常会创建一个专门的文件下载类。这个类可以帮助我们管理文件路径、设定下载头、控制下载速度等。让...

    php 20个实例文件简单上传下载源码

    这个压缩包提供的"php 20个实例文件简单上传下载源码"集合了20个不同的示例,涵盖了PHP文件操作的基本原理和实践技巧。下面将详细阐述这些知识点。 1. **文件上传**: - PHP中的`&lt;input type="file"&gt;`元素用于在...

    jquery+ajax+php文件下载.rar

    这个名为"jquery+ajax+php文件下载.rar"的压缩包文件很可能包含了一个示例项目,展示了如何利用这些技术实现在网页上无刷新地下载文件。下面我们将详细探讨这三个关键知识点。 首先,jQuery是一个广泛使用的...

    基于HTTP PHP文件下载类.rar(很好很实用哦)

    这里我们关注的焦点是“基于HTTP PHP文件下载类”。这个压缩包文件包含了一个名为`httpdownload.class.php`的文件,这通常是一个实现了文件下载功能的PHP类。下面我们将详细探讨这个类的工作原理以及相关的PHP知识。...

Global site tag (gtag.js) - Google Analytics