У меня проблема такая, что на локалке у меня нормально проходит код
header("Content-Type: $FileMime");
И после него удаляется файл так как надо, но на сервере у меня просходит, что когда доходит до данного header то код просто перестает обрабатывать.
Мой код
/**
* @param string $path
* @param string $filename
* @param string $contentDisposition
* @return bool
* @throws Exception
* @throws \Exception
*/
public static function DownloadDocument($path, $filename = 'documents', $contentDisposition = 'inline')
{
if (!file_exists($path)) {
throw new \Exception('File ' . $path . ' not found');
}
$FileMime = mime_content_type($path);
// сбрасываем буфер вывода PHP, чтобы избежать переполнения памяти выделенной под скрипт
if (ob_get_level()) {
ob_end_clean();
}
header("Content-Description: File Transfer");
header("Content-Type: $FileMime");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($path));
header("Content-Disposition: $contentDisposition; filename=$filename." . self::GetExtension($path));
header("Expires: 0");
header("Cache-Control: must-revalidate");
header("Pragma: public");
readfile($path);
return true;
}
/**
* @param int $id
* @return bool
* @throws Exception
*/
public static function DocumentStatisticsUtm($id)
{
$fileName = $id . '.xlsx';
$path = Yii::getAlias('@uploads') . '/temp/' . $fileName;
if (file_exists($path)) {
self::DownloadDocument($path);
unlink($path);
return true;
}
return false;
}
Так не понял почему на разных машинах у меня разное действие. На локалке стоит php7.1, а на сервере 7.3. Это тестовый сервер поэтому такое расхождение в версиях php. Просто если это имеет значение на данную проблему