<legend id='LJoEZ'><style id='LJoEZ'><dir id='LJoEZ'><q id='LJoEZ'></q></dir></style></legend>

    1. <tfoot id='LJoEZ'></tfoot>

    2. <small id='LJoEZ'></small><noframes id='LJoEZ'>

      1. <i id='LJoEZ'><tr id='LJoEZ'><dt id='LJoEZ'><q id='LJoEZ'><span id='LJoEZ'><b id='LJoEZ'><form id='LJoEZ'><ins id='LJoEZ'></ins><ul id='LJoEZ'></ul><sub id='LJoEZ'></sub></form><legend id='LJoEZ'></legend><bdo id='LJoEZ'><pre id='LJoEZ'><center id='LJoEZ'></center></pre></bdo></b><th id='LJoEZ'></th></span></q></dt></tr></i><div id='LJoEZ'><tfoot id='LJoEZ'></tfoot><dl id='LJoEZ'><fieldset id='LJoEZ'></fieldset></dl></div>
          <bdo id='LJoEZ'></bdo><ul id='LJoEZ'></ul>

        Webkit 和 Excel 文件(PHPexcel)

        时间:2023-05-29
            <tbody id='9vv5F'></tbody>
          <tfoot id='9vv5F'></tfoot>

        1. <i id='9vv5F'><tr id='9vv5F'><dt id='9vv5F'><q id='9vv5F'><span id='9vv5F'><b id='9vv5F'><form id='9vv5F'><ins id='9vv5F'></ins><ul id='9vv5F'></ul><sub id='9vv5F'></sub></form><legend id='9vv5F'></legend><bdo id='9vv5F'><pre id='9vv5F'><center id='9vv5F'></center></pre></bdo></b><th id='9vv5F'></th></span></q></dt></tr></i><div id='9vv5F'><tfoot id='9vv5F'></tfoot><dl id='9vv5F'><fieldset id='9vv5F'></fieldset></dl></div>

            <small id='9vv5F'></small><noframes id='9vv5F'>

              <bdo id='9vv5F'></bdo><ul id='9vv5F'></ul>

                <legend id='9vv5F'><style id='9vv5F'><dir id='9vv5F'><q id='9vv5F'></q></dir></style></legend>
                1. 本文介绍了Webkit 和 Excel 文件(PHPexcel)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我有一个可以下载的 excel 文件..例如 NAME.xlsx 它在 firefox 中运行良好,但在 webkit(safari/chrome) 中它也附加到名称后 扩展名 .xhtml 所以然后将其命名为 NAME.xlsx.html 它应该是 ONLY .xlsx

                  I have an excel file which can be downloaded..for example NAME.xlsx well it works in firefox but in webkit(safari/chrome) it appends to the name also the extension .xhtml so then name it will be NAME.xlsx.html it should be ONLY .xlsx

                  这是我的标题:

                              $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
                  
                          $objWriter->save($root.'/application/to_excel/KSW.xlsx');
                          $this->getResponse()->setHeader('Content-type', 'application/download', true); 
                          $this->getResponse()->setHeader('Content-type', 'application/octet-stream', true);            
                          $this->getResponse()->setHeader('Content-type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', true);
                          $this->getResponse()->setHeader('Content-disposition', 'attachment;filename='.basename($root.'/application/to_excel/KSW.xlsx').'', true);
                          $this->getResponse()->setHeader('Cache-Control', 'max-age=0', true);  
                  

                  那么我做错了什么?

                  推荐答案

                  我还没有遇到此功能失败的情况——它适用于我迄今为止在 Safari (Windows) 中尝试过的所有 Office 2007/2010 文件和铬.get_known_mime_types() 函数只返回一个包含我的应用程序支持的所有 mime 类型的巨大数组——只需谷歌搜索您需要的 MIME 类型.$file 是主机上文件的实际路径,$name 是显示在下载(运行/保存)对话框中的文件名.我也对我从中获得大部分收益的地方给予了应有的信任.希望你也有好运:

                  I've not had this function fail yet -- it works with all the Office 2007/2010 files that I've tried so far in Safari (Windows) and Chrome. The get_known_mime_types() function just returns a giant array of all the mime-types that my app supports -- just Google for the MIME types you need. $file is the actual path to the file on your host, and $name is the file name that displays in the download (run/save) dialog. I've also given due credit to the place I got most of it from. Hope you have luck with it too:

                  function file_download($file, $name, $mime_type='') {
                      /* The majority of this code was taken from:
                       * http://w-shadow.com/blog/2007/08/12/how-to-force-file-download-with-php/
                       * 
                       * So a big thanks to them.
                       * I have modified parts of it, though, so it's not 100% borrowed.
                       */
                  
                      if(!is_readable($file)) die('File not found or inaccessible!');
                  
                      $size = filesize($file);
                      $name = rawurldecode($name);
                  
                      /* Figure out the MIME type (if not specified) */
                      $known_mime_types = get_known_mime_types();
                  
                      if($mime_type==''){
                          $file_extension = strtolower(substr(strrchr($file,"."),1));
                  
                          if(array_key_exists($file_extension, $known_mime_types)){
                              $mime_type=$known_mime_types[$file_extension];
                          } else {
                              $mime_type="application/force-download";
                          }
                      }
                  
                      @ob_end_clean(); //turn off output buffering to decrease cpu usage
                  
                      // required for IE, otherwise Content-Disposition may be ignored
                      if(ini_get('zlib.output_compression')) {
                          ini_set('zlib.output_compression', 'Off');
                      }
                  
                      header('Content-Type: ' . $mime_type);
                      header('Content-Disposition: attachment; filename="'.$name.'"');
                      header("Content-Transfer-Encoding: binary");
                      header('Accept-Ranges: bytes');
                  
                      /* The three lines below basically make the download non-cacheable */
                      header("Cache-control: private");
                      header('Pragma: private');
                      header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
                  
                      // multipart-download and download resuming support
                      if(isset($_SERVER['HTTP_RANGE'])) {
                          list($a, $range) = explode("=",$_SERVER['HTTP_RANGE'],2);
                          list($range) = explode(",",$range,2);
                          list($range, $range_end) = explode("-", $range);
                          $range=intval($range);
                  
                          if(!$range_end) {
                              $range_end=$size-1;
                          } else {
                              $range_end=intval($range_end);
                          }
                  
                          $new_length = $range_end-$range+1;
                  
                          header("HTTP/1.1 206 Partial Content");
                          header("Content-Length: $new_length");
                          header("Content-Range: bytes $range-$range_end/$size");
                      } else {
                          $new_length=$size;
                          header("Content-Length: ".$size);
                      }
                  
                      /* output the file itself */
                      $chunksize = 1*(1024*1024); // 1MB, can be tweaked if needed
                      $bytes_send = 0;
                  
                      if ($file = fopen($file, 'r')) {
                          if(isset($_SERVER['HTTP_RANGE'])) {
                              fseek($file, $range);
                          }
                  
                          while(!feof($file) && (!connection_aborted()) && ($bytes_send<$new_length)) {
                              $buffer = fread($file, $chunksize);
                              print($buffer); //echo($buffer); // is also possible
                              flush();
                              $bytes_send += strlen($buffer);
                          }
                  
                          fclose($file);
                      } else {
                          die('Error - can not open file.');
                      }
                  
                      die();
                  }
                  

                  这篇关于Webkit 和 Excel 文件(PHPexcel)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:Zend Forms 模块包含路径 下一篇:在 Zend Framework 中处理会话的最佳方式

                  相关文章

                    • <bdo id='W4W13'></bdo><ul id='W4W13'></ul>
                    1. <i id='W4W13'><tr id='W4W13'><dt id='W4W13'><q id='W4W13'><span id='W4W13'><b id='W4W13'><form id='W4W13'><ins id='W4W13'></ins><ul id='W4W13'></ul><sub id='W4W13'></sub></form><legend id='W4W13'></legend><bdo id='W4W13'><pre id='W4W13'><center id='W4W13'></center></pre></bdo></b><th id='W4W13'></th></span></q></dt></tr></i><div id='W4W13'><tfoot id='W4W13'></tfoot><dl id='W4W13'><fieldset id='W4W13'></fieldset></dl></div>

                      <tfoot id='W4W13'></tfoot>

                      <small id='W4W13'></small><noframes id='W4W13'>

                      <legend id='W4W13'><style id='W4W13'><dir id='W4W13'><q id='W4W13'></q></dir></style></legend>