而不是文件下载获取当前页面的转储

时间:2012-09-17 23:30:28

标签: php

我正在强制下载文件。它是一个xml文件。问题是当我下载它时,该文件包含从中开始下载的当前页面的html转储。这是片段

文件:/bitrix/modules/export/admin/export.php

 $name='market'.date('Y-m-d-H-i-s').'.yml';
 $file='/bitrix/modules/export/export/'.$name;
 $filename=$_SERVER["DOCUMENT_ROOT"].$file;
 $fp=fopen($filename,"wb");
 /*
 *
 * Here goes some generating script
 *
 */
 fclose($fp);
 header('Content-disposition:attachment;filename="'.$name.'"');
 header('Content-type: application/svg+xml');
 readfile(realpath($file));

1 个答案:

答案 0 :(得分:1)

当包含空行,不同代码等时,很难让下载脚本工作。在生成文件后发布文件名应该有效。下载脚本示例:

<?php
if ( isset ( $_REQUEST[ 'filename' ] ) ) {
  $FileName       = $_REQUEST[ 'filename' ];
  $DownloadFolder = "MyDowloads";
  status_header( 200 );
  header( "Content-type: application/force-download" );
  header( 'Content-type: application/svg+xml' );
  $saveas = $FileName;
  header( "Content-Disposition: attachment; filename=\"$saveas\"" );
  readfile( $DownloadFolder . $FileName );
}
?>

希望这有帮助。