Задать вопрос
serg_small_developer
@serg_small_developer
Начинающий прогер

Почему не могу создать/скачать zip архив?

всем привет, уже продолжительное время не могу понять что не так, мне нужно создать временный архив, добавить в него файлы и отдать на скачивание, делаю это вот так
if (!extension_loaded('zip')) {
        return false;
    }  
    $file = tempnam(sys_get_temp_dir(), rand(0, 999999999).'zip');    
    $zip = new \ZipArchive();
    if ($zip->open($file, \ZipArchive::CREATE) !== TRUE) {
        throw new \Exception('Cannot create a zip file');
    }
    foreach($files as $file){
        $zip->addFile($file);
    }
    if(file_exists($zip->filename)){        
        return \Yii::$app->response->sendFile($zip->filename, time().'.zip', ['mimeType'=>'application/zip']);
    } else {            
        throw new NotFoundHttpException('Такого файла не существует '.$file);
    }
    $zip->close();

но все время пишет "Такого файла не существует", что я делаю не так?, подскажите пожалуйста
  • Вопрос задан
  • 133 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
Nemozar
@Nemozar
Php developer
Сохранение архива происходит в момент закрытия. Перенесите закрытые до file_exists
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы