* finish task #6898.

This commit is contained in:
wangyidong
2020-02-26 18:01:56 +08:00
parent b018d1e785
commit aa3dd14ee5
2 changed files with 13 additions and 6 deletions
+3 -4
View File
@@ -149,8 +149,7 @@ class file extends control
/* Down the file. */
$fileName = $file->title;
if(!preg_match("/\.{$file->extension}$/", $fileName)) $fileName .= '.' . $file->extension;
$fileData = file_get_contents($file->realPath);
$this->sendDownHeader($fileName, $file->extension, $fileData);
$this->sendDownHeader($fileName, $file->extension, $file->realPath, 'file');
}
}
else
@@ -244,9 +243,9 @@ class file extends control
* @access public
* @return void
*/
public function sendDownHeader($fileName, $fileType, $content)
public function sendDownHeader($fileName, $fileType, $content, $type = 'content')
{
$this->file->sendDownHeader($fileName, $fileType, $content);
$this->file->sendDownHeader($fileName, $fileType, $content, $type);
}
/**
+10 -2
View File
@@ -869,7 +869,7 @@ class fileModel extends model
* @access public
* @return void
*/
public function sendDownHeader($fileName, $fileType, $content)
public function sendDownHeader($fileName, $fileType, $content, $type = 'content')
{
/* Clean the ob content to make sure no space or utf-8 bom output. */
$obLevel = ob_get_level();
@@ -893,6 +893,14 @@ class fileModel extends model
header("Content-Disposition: attachment; filename=\"$fileName\"");
header("Pragma: no-cache");
header("Expires: 0");
die($content);
if($type == 'content') die($content);
if($type == 'file' and file_exists($content))
{
$chunkSize = 1024 * 1024;
$handle = fopen($content, "r");
while(!feof($handle)) echo fread($handle, $chunkSize);
fclose($handle);
die();
}
}
}