Hola Luciana,
Claro, veo que que pone mal la extensión, si le renombro a .zip se descomprime bien!!!
Toda la lógica esta en la función accion__imprimir_solicitud de la clase src/siu/operaciones/convocatorias_becas/controlador.php, yo lo tengo así con los cambios:
function accion__imprimir_solicitud()
{
try {
$hash_habilitacion = $this->validate_param(0, 'get', validador::TIPO_ALPHANUM);
$convocatorias_aplicadas = $this->modelo()->info__convocatorias_aplicadas();
// Si existe la convocatoria
if (isset($convocatorias_aplicadas[$hash_habilitacion])) {
$convocatoria = $convocatorias_aplicadas[$hash_habilitacion];
$datos_impresion = $this->modelo()->info__convocatoria_impresion($convocatoria['becas_convocatoria']);
$datos_impresion['convocatoria_nombre'] = $convocatoria['tehuelche_nombre'];
$datos_impresion['convocatoria_descripcion'] = $convocatoria['tehuelche_informacion_adicional'];
$opt = [
\ZipStream\ZipStream::OPTION_CONTENT_TYPE => 'application/x-zip',
\ZipStream\ZipStream::OPTION_CONTENT_DISPOSITION => 'attachment; filename=\"convocatoria.zip\"',
\ZipStream\ZipStream::OPTION_SEND_HTTP_HEADERS => true,
\ZipStream\ZipStream::OPTION_LARGE_FILE_SIZE => 100 * 1024 * 1024
];
// https://packagist.org/packages/maennchen/zipstream-php#v0.5.2
$zip = new \ZipStream\ZipStream('convocatoria.zip', $opt);
$path_pdf_kolla = $this->modelo()->info__pdf_formulario_kolla($convocatoria['kolla_id_habilitacion'], $convocatoria['formulario'], $convocatoria['hash'], $convocatoria['kolla_unidad_gestion']);
$zip->addFileFromPath('kolla.pdf', $path_pdf_kolla);
unlink($path_pdf_kolla);
$path_pdf_guarani = $this->generar_pdf_guarani($datos_impresion);
$zip->addFileFromPath('guarani.pdf', $path_pdf_guarani);
unlink($path_pdf_guarani);
$zip->finish();
} else { // sino
$data['mensaje_tipo'] = 'alert-error';
$data['mensaje'] = 'convocatorias_becas.convocatoria_inexistente';
$this->vista()->set_pagelet('mensaje', $data);
}
} catch (\Exception $e) {
kernel::log()->add_error($e);
$data['mensaje_tipo'] = 'alert-error';
$data['mensaje'] = 'convocatorias_becas.ha_ocurrido_error';
$this->vista()->set_pagelet('mensaje', $data);
}
}
El nombre se lo estoy poniendo en dos lugares:
$zip = new \ZipStream\ZipStream('convocatoria.zip', $opt);
y acá también:
\ZipStream\ZipStream::OPTION_CONTENT_DISPOSITION => 'attachment; filename=\"convocatoria.zip\"',
Este ultimo esta generando problemas, ya que le pone ese nombre:
$zip->addFileFromPath('guarani.pdf', $path_pdf_guarani);
¿que pasa si se lo pasas así?
$zip->addFileFromPath('guarani.pdf', $path_pdf_guarani, [], 'store');
saludos.
2