Esto es extraño.El archivo de lectura de PHP devuelve el archivo de longitud cero
Tengo un script que envía archivos zip locales al usuario a través del navegador. El script ha funcionado bien hasta ahora sin ningún problema. Hoy mi colega me ha notificado que la secuencia de comandos está enviando archivos de longitud cero.
Algunos información de fondo:
configuración- Server no se ha modificado antes de la secuencia de comandos que salió mal
- diferentes navegadores probados (la misma en Chrome/Firefox)
- archivos zip anterior (que funcionaba bien antes) son de longitud cero demasiado
- escritura funda los archivos en el servidor
- tamaño del archivo (cuando se hizo eco de depuración) es correcta
- Ha intentado ajustar la configuración del servidor y la secuencia de comandos como adviced here sin éxito.
ACTUALIZACIONES:
is_readable()
devuelve 1- tamaño de los archivos pueden variar entre 5 Mb y 100 Mb (no específica)
$zip_file
sostiene la ruta del archivo$zip_name
contiene el nombre postal- El archivo es realmente de longitud cero (se abre en text-edi tor que no contiene un solo byte)
error_reporting
esOn
(E_ALL
) no muestra nada- sin cabeceras del navegador muestra la postal 'fuente' correctamente
- Safari dice: '0 bytes de? No se puede descodificar datos en bruto 'primer síntoma útil
de fragmentos de interrogación (?):
if (file_exists($zip_file)) {
header('Content-type: application/zip');
header('Content-disposition: filename="' . $zip_name . '"');
header("Content-length: " . filesize($zip_file));
readfile($zip_file);
exit();
}
¿Cómo puedo depurar esto fácilmente?
Gracias de antemano, Fabrik
pregunta estúpida: ¿existe el archivo? –
es posible que desee utilizar 'is_readable()' en lugar de 'file_exists()'. Is_readable comprueba si el archivo existe y es legible. – JohnP
¿Son de longitud cero o En este último caso, pueden contener un mensaje de error PHP. Simplemente busque el archivo y ábralo con un editor de texto – Unicron