Al transferir archivos utilizando scripts PHP por motivos de seguridad, la ruta absoluta de los archivos descargables a menudo es necesario ocultarlo. Sin embargo, es posible que los scripts de transferencia de archivos PHP tradicionales no admitan descargas reanudables, lo que genera inconvenientes para los usuarios finales que experimentan interrupciones en la conexión.
Para habilitar descargas reanudables, se pueden seguir los siguientes pasos tomado:
A continuación se muestra un ejemplo de implementación de estos principios en PHP:
$filesize = filesize($file); $offset = 0; $length = $filesize; if (isset($_SERVER['HTTP_RANGE'])) { preg_match('/bytes=(\d )-(\d )?/', $_SERVER['HTTP_RANGE'], $matches); $offset = intval($matches[1]); $length = intval($matches[2]) - $offset; } $file = fopen($file, 'r'); fseek($file, $offset); $data = fread($file, $length); fclose($file); if ($offset > 0) { header('HTTP/1.1 206 Partial Content'); header('Content-Range: bytes ' . $offset . '-' . ($offset $length) . '/' . $filesize); } header('Content-Type: ' . $ctype); header('Content-Length: ' . $filesize); header('Content-Disposition: attachment; filename="' . $fileName . '"'); header('Accept-Ranges: bytes'); print($data);
Este script primero verifica si se realizó una solicitud de contenido parcial. Si es así, analiza el rango desde el encabezado Rango, busca el desplazamiento apropiado en el archivo y envía el rango de bytes solicitado. El script también establece el encabezado Accept-Ranges en bytes y envía el código de estado HTTP apropiado para contenido parcial si es necesario.
Al implementar estas medidas, se pueden admitir descargas reanudables utilizando scripts de transferencia de archivos PHP, lo que proporciona una solución sólida. para transferencias de archivos que pueden reanudarse después de interrupciones.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3