Производить .zip динамический и загружаться

у меня есть проблема, оказывается, что я сделал этот рукописный шрифт, чтобы производить разряд на веб-странице. на моем сервере используя WAMP server (внизу windows) функционируй совершенно, но на сервере с CentOS оно не функционирует, я использую ту же версию PHP 5.6.25.
Здесь я перемещаю его мой код:

<?php
//esconder notificaciones
@ini_set('error_reporting', E_ALL & ~ E_NOTICE);
//que el server no comprima
@apache_setenv('no-gzip', 1);
@ini_set('zlib.output_compression', 'Off');
ignore_user_abort(true);
if (isset($_GET["id"])) {
    // Creamos un instancia de la clase ZipArchive
    $conexion=mysqli_connect("localhost","usuario","contraseña","baseDeDatos") 
    or die("Problemas en la conexion");
    $id = mysqli_real_escape_string($conexion,$_GET["id"]);
    $result = mysqli_query($conexion, "SELECT * FROM `subidas` WHERE `ID` = '$id'");
    if (mysqli_num_rows($result) > 0 && mysqli_num_rows($result) < 2) {
        while ($row = $result->fetch_assoc()) {
            $archivos = explode("/:/", $row["Archivos"]);
            $ID = $row["ID"];
        }
        $zip = new ZipArchive();
        // Creamos y abrimos un archivo zip temporal
        $zip->open($ID.".zip",ZipArchive::CREATE);// Añadimos un directorio
        $dir = 'archivos';
        $zip->addEmptyDir($dir);
        // Añadimos un archivo en la raid del zip.
        //$zip->addFile("imagen1.jpg","mi_imagen1.jpg");
        foreach ($archivos as $value) {
            if ($value != "") {
                $archivo = explode("///", $value);
                //Añadimos un archivo dentro del directorio que hemos creado
                $zip->addFile("../uploads/".$archivo[0],$dir."/".$archivo[1]);
            }
        }
        // Una vez añadido los archivos deseados cerramos el zip.
        $zip->close();
        // parsear el nombre del archivo
        $path_parts = pathinfo($ID.".zip");
        $file_name  = $path_parts['basename'];
        $file_ext   = $path_parts['extension'];
        $file_path  = $ID.".zip"; //Si se descarga de otra ubicación, cambiar por: $file_path = './carpeta/descargas/' . $file_name;

        $is_attachment = true; //Como adjunto (cambiar a false si es un stream, por ej. audio o video)

        // existe el archivo?
        if (is_file($file_path))
        {
            $file_size  = filesize($file_path);
            $file = @fopen($file_path,"rb");
            if ($file)
            {
                // encabezados, y sin caché
                header("Pragma: public");
                header("Expires: -1");
                header("Cache-Control: public, must-revalidate, post-check=0, pre-check=0");

                if ($is_attachment)
                        header("Content-Disposition: attachment; filename=\"$file_name\"");
                else
                        header('Content-Disposition: inline;');

                // mime type según la extensión (agregar otra si falta)
                $ctype_default = "application/octet-stream";
                $content_types = array(
                        "exe" => "application/octet-stream",
                        "zip" => "application/zip",
                        "mp3" => "audio/mpeg",
                        "mpg" => "video/mpeg",
                        "avi" => "video/x-msvideo",
                );
                $ctype = isset($content_types[$file_ext]) ? $content_types[$file_ext] : $ctype_default;
                header("Content-Type: " . $ctype);

                // http_range si hay gestión de descarga
                $range = '';
                if(isset($_SERVER['HTTP_RANGE']))
                {
                    list($size_unit, $range_orig) = explode('=', $_SERVER['HTTP_RANGE'], 2);
                    if ($size_unit == 'bytes')
                    {
                        list($range, $extra_ranges) = explode(',', $range_orig, 2);
                    }
                    else
                    {
                        header('HTTP/1.1 416 Requested Range Not Satisfiable');
                        exit;
                    }
                }
                list($seek_start, $seek_end) = explode('-', $range, 2);
                $seek_end   = (empty($seek_end)) ? ($file_size - 1) : min(abs(intval($seek_end)),($file_size - 1));
                $seek_start = (empty($seek_start) || $seek_end < abs(intval($seek_start))) ? 0 : max(abs(intval($seek_start)),0);
                if ($seek_start > 0 || $seek_end < ($file_size - 1))
                {
                    header('HTTP/1.1 206 Partial Content');
                    header('Content-Range: bytes '.$seek_start.'-'.$seek_end.'/'.$file_size);
                    header('Content-Length: '.($seek_end - $seek_start + 1));
                }
                else
                  header("Content-Length: $file_size");

                header('Accept-Ranges: bytes');

                ignore_user_abort(true);

                set_time_limit(0);
                fseek($file, $seek_start);

                $chunksize = 1*(1024*1024); // how many bytes per chunk 

                // imprimir el archivo
                while(!feof($file)) 
                {
                    print(@fread($file, $chunksize));     //leer 8KB
                    ob_flush();
                    flush();
                    sleep(1);
                    if (connection_aborted()) 
                    {
                                @fclose($file);
                                @unlink($ID.".zip");//Destruye archivo temporal
                        exit; //error
                    }
                }

                // terminó OK
                //@fclose($file);
            }
            else 
            {
                // no se pudo abrir el archivo
                header("HTTP/1.0 500 Internal Server Error");
            }
        }
        else
        {
            // no existe el archivo
            header("HTTP/1.0 404 Not Found");
        }
        //todo OK
        @fclose($file);
        @unlink($ID.".zip");//Destruye archivo temporal
        exit;
    } else {
        header("HTTP/1.0 404 Not Found");
    }
} else {
    header("HTTP/1.0 404 Not Found");
}
?>

он бросает мне следующую ошибку:

Failed to похвалите resource: the server ответьте with на статус of 500 (Интерналь Сервер Ошибка)

модуль zip является уполномоченнымmodulo php_zip

разрешения папки PHP:permisos

какая-то идея, состоящая в том, что я врежу? большое спасибо!!

2
задан 12.06.2017, 19:55
1 ответ

Для того, чтобы он исчез, ты используешь Г©sta lГ-nea:

unlink(_fileName_);
0
ответ дан 24.11.2019, 08:27
  • 1
    Ты мог бы объяснять лучше пример и брать код, который находится в вопросе предпочтения – Raul Cacacho 22.03.2018, 19:45