Si realizo la url de un archivo zip el href
de un enlace y hago clic en el enlace, mi archivo comprimido se descarga y al abrirlo obtiene los contenidos como esperaba.¿Al abrir el archivo zip descargado se crea el archivo cpgz?
Así es que HTML:
<a href="http://mysite.com/uploads/my-archive.zip">download zip</a>
El problema es que me gustaría el enlace para que apunte a mi solicitud de tal manera que pude determinar si el usuario está autorizado a acceder a este archivo zip.
así que me gustaría que mi HTML para ser la siguiente:
<a href="/canDownload">download zip</a>
y mi PHP para la página /canDownload
:
//business logic to determine if user can download
if($yesCanDownload){
$archive='https://mysite.com/uploads/my-archive.zip';
header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=".basename($archive));
header("Content-Length: ".filesize($archive));
ob_clean();
flush();
echo readfile("$archive");
}
Por lo tanto, creo que el problema tiene que ver con el código header()
pero he intentado un montón de cosas relacionadas con eso, basadas en varias sugerencias de Google y otras SO, y ninguna funciona.
Si su respuesta a mi pregunta, es probable que pueda responder a esta pregunta también: Zipped file with PHP results in cpgz file after extraction
¿Qué es un archivo * cpgz *? – hakre
En aras de la simplicidad, me referí a él como un archivo cpgz, pero en realidad es un archivo 'xxx.zip.cpgz'. Desde google, creo que es un comprimido del archivo zip. Parece que estoy descargando un archivo cuyo contenido no se puede leer porque las instrucciones del encabezado() ya estaban determinadas por '/ canDownload'. –
Intente cambiar la extensión a .txt y vea si tiene texto sin formato allí. – jprofitt