php下载EXCEL文件要另存为,而不是在网页中打开

解决方案 »

  1.   

    在头部输出
    header("Content-type:application/vnd.ms-excel");
    header("Content-Disposition:attachment;filename=test_data.xls");或用phpexcel类
      

  2.   

    下载的连接为:<a href="DownLoadFile.php?download=.%2FuploadFiles%2Fbug%2F200809%2F11%2FBJ190809110015%2F%CE%B4%C3%FC%C3%FB_998e57ad2365623b9f19ff0c895705bb.bmp">未命名</a>
    DownLoadFile.php代码如下:
    <?php
        if( isset( $_REQUEST["download"] ) )
        {
                $tfile = $_REQUEST["download"];
                
                if (file_exists($tfile))
                {
                    $downfilename=substr($tfile,strrpos($tfile, "/")+1);
                   //文件保存的名字可以修改为你需要的,可以和链接给的名字不一样
                    // Prompt the user to download the new torrent file.
                    header( "Content-type: application/octet-stream\n" );
                    header( "Content-disposition: attachment; filename=$downfilename\n" );
                    header( "Content-transfer-encoding: binary\n");
                    header( "Content-length: " . @filesize($tfile ) . "\n" );
                    // Send the torrent file
                    $fp = @fopen( $tfile, "r" );
                    @fpassthru( $fp );
                    @fclose( $fp );
                 }
                
                exit();
         }
    ?>这个是php.net上的例子:实现pdf文件下载功能<?php 
    $filename = $_SERVER['DOCUMENT_ROOT'] . "/path/to/file/my_file.pdf"; 
    header("Cache-Control: public"); 
    header("Content-Description: File Transfer"); 
    header('Content-disposition: attachment; filename='.basename($filename)); 
    header("Content-Type: application/pdf"); //pdf格式的
    header("Content-Transfer-Encoding: binary"); 
    header('Content-Length: '. filesize($filename)); 
    readfile($filename); 
    ?>
    下面讲讲header中的Content-type:
    不同的下载文件,对应不同的content-type,下面是大全:{
        'ez'        => 'application/andrew-inset',
        'hqx'      => 'application/mac-binhex40',
        'cpt'       => 'application/mac-compactpro',
        'doc'      => 'application/msword',
        'bin'       => 'application/octet-stream',
        'dms'     => 'application/octet-stream',
        'lha'       => 'application/octet-stream', 
        'lzh'       => 'application/octet-stream',
        'exe'      => 'application/octet-stream',
        'class'    => 'application/octet-stream',
        'so'        => 'application/octet-stream',
        'dll'        => 'application/octet-stream',
        'oda'     => 'application/oda',
        'pdf'      => 'application/pdf',
        'ai'        => 'application/postscript',
        'eps'     => 'application/postscript',
        'ps'       => 'application/postscript',
        'smi'      => 'application/smil',
        'smil'     => 'application/smil',
        'mif'      => 'application/vnd.mif',
        'xls'       => 'application/vnd.ms-excel',
        'ppt'      => 'application/vnd.ms-powerpoint',
        'wbxml'    => 'application/vnd.wap.wbxml',
        'wmlc'      => 'application/vnd.wap.wmlc',
        'wmlsc'    => 'application/vnd.wap.wmlscriptc',
        'bcpio'        => 'application/x-bcpio',
        'vcd'        => 'application/x-cdlink',
        'pgn'        => 'application/x-chess-pgn',
        'cpio'        => 'application/x-cpio',
        'csh'        => 'application/x-csh', 
        'dcr'        => 'application/x-director',
        'dir'        => 'application/x-director',
        'dxr'        => 'application/x-director',
        'dvi'        => 'application/x-dvi',
        'spl'        => 'application/x-futuresplash',
        'gtar'        => 'application/x-gtar',
        'hdf'        => 'application/x-hdf',
        'js'        => 'application/x-javascript',
        'skp'        => 'application/x-koan',
        'skd'        => 'application/x-koan',
        'skt'        => 'application/x-koan',
        'skm'        => 'application/x-koan',
        'latex'        => 'application/x-latex',
        'nc'        => 'application/x-netcdf',
        'cdf'        => 'application/x-netcdf',
        'sh'        => 'application/x-sh',
        'shar'        => 'application/x-shar',
        'swf'        => 'application/x-shockwave-flash',
        'sit'        => 'application/x-stuffit',
        'sv4cpio'    => 'application/x-sv4cpio',
        'sv4crc'    => 'application/x-sv4crc',
        'tar'        => 'application/x-tar',
        'tcl'        => 'application/x-tcl',
        'tex'        => 'application/x-tex', 
        'texinfo'    => 'application/x-texinfo',
        'texi'        => 'application/x-texinfo',
        't'            => 'application/x-troff',
        'tr'        => 'application/x-troff',
        'roff'        => 'application/x-troff',
        'man'        => 'application/x-troff-man',
        'me'        => 'application/x-troff-me',
        'ms'        => 'application/x-troff-ms',
        'ustar'        => 'application/x-ustar',
        'src'        => 'application/x-wais-source',
        'xhtml'        => 'application/xhtml+xml',
        'xht'        => 'application/xhtml+xml', 
        'zip'        => 'application/zip',
        'au'        => 'audio/basic',
        'snd'        => 'audio/basic',
        'mid'        => 'audio/midi',
        'midi'        => 'audio/midi',
        'kar'        => 'audio/midi',
        'mpga'        => 'audio/mpeg',
        'mp2'        => 'audio/mpeg',
        'mp3'        => 'audio/mpeg',
        'aif'        => 'audio/x-aiff',
        'aiff'        => 'audio/x-aiff',
        'aifc'        => 'audio/x-aiff',
        'm3u'        => 'audio/x-mpegurl',
        'ram'        => 'audio/x-pn-realaudio',
        'rm'        => 'audio/x-pn-realaudio',
        'rpm'        => 'audio/x-pn-realaudio-plugin',
        'ra'        => 'audio/x-realaudio',
        'wav'        => 'audio/x-wav',
        'pdb'        => 'chemical/x-pdb',
        'xyz'        => 'chemical/x-xyz',
        'bmp'        => 'image/bmp',
        'gif'        => 'image/gif',
        'ief'        => 'image/ief',
        'jpeg'        => 'image/jpeg',
        'jpg'        => 'image/jpeg',
        'jpe'        => 'image/jpeg', 
        'png'        => 'image/png',
        'tiff'        => 'image/tiff',
        'tif'        => 'image/tiff',
        'djvu'        => 'image/vnd.djvu',
        'djv'        => 'image/vnd.djvu',
        'wbmp'        => 'image/vnd.wap.wbmp',
        'ras'        => 'image/x-cmu-raster',
        'pnm'        => 'image/x-portable-anymap',
        'pbm'        => 'image/x-portable-bitmap',
        'pgm'        => 'image/x-portable-graymap',
        'ppm'        => 'image/x-portable-pixmap',
        'rgb'        => 'image/x-rgb', 
        'xbm'        => 'image/x-xbitmap',
        'xpm'        => 'image/x-xpixmap',
        'xwd'        => 'image/x-xwindowdump',
        'igs'       => 'model/iges',
        'iges'        => 'model/iges',
        'msh'        => 'model/mesh',
        'mesh'      => 'model/mesh',
        'silo'         => 'model/mesh',
        'wrl'          => 'model/vrml',
        'vrml'        => 'model/vrml',
        'css'          => 'text/css',
        'html'        => 'text/html',
        'htm'        => 'text/html', 
        'asc'        => 'text/plain',
        'txt'          => 'text/plain',
        'rtx'      => 'text/richtext',
        'rtf'       => 'text/rtf',
        'sgml'       => 'text/sgml',
        'sgm'        => 'text/sgml',
        'tsv'      => 'text/tab-separated-values',
        'wml'       => 'text/vnd.wap.wml',
        'wmls'       => 'text/vnd.wap.wmlscript',
        'etx'          => 'text/x-setext',
        'xsl'          => 'text/xml',
        'xml'       => 'text/xml',
        'mpeg'     => 'video/mpeg',
        'mpg'       => 'video/mpeg',
        'mpe'       => 'video/mpeg',
        'qt'      => 'video/quicktime',
        'mov'       => 'video/quicktime',
        'mxu'       => 'video/vnd.mpegurl',
        'avi'         => 'video/x-msvideo',
        'movie'    => 'video/x-sgi-movie',
        'ice'         => 'x-conference/x-cooltalk',}
      

  3.   

    header("Content-type:application/vnd.ms-excel");关键这句