 
 
		
				
			zcriptz
1
Ómicron
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Suscripción a IA
		
		PHP:
	
	<?php
function cutFile($fileName, $folderDest, $parts){
    file_exists($folderDest)
        ||
    mkdir($folderDest)
    ?
        is_dir($folderDest)
        ?
            fileperms($folderDest) != 16877
                &&
            !chmod($folderDest, 0755)
            ?
                $error = "No pudo cambiarse los permisos de $folderDest"
            :
                file_exists($fileName)
                ?
                    is_readable($fileName)
                    ?
                        $totalBytes = filesize($fileName)
                    :
                        $error = 'El archivo no puede leerse'
                :
                    $error = 'El archivo no existe'
        :
            $error = $folderDest.' no es una carpeta'
    :
        $error = 'Hay un error con la carpeta de destino'
    ;
    if($error)
        return $error
    ;
    $totalBytes = filesize($fileName);
    $partSize = ceil($totalBytes/$parts);
    $n = 0;
    $cutBytes = 0;
    while($n < $parts){
        if($cutBytes+$partSize > $totalBytes)
            $partSize = $totalBytes-$cutBytes
        ;
        file_put_contents(
            "$folderDest/$fileName.part".str_pad($n, strlen($parts-1), 0, STR_PAD_LEFT),
            file_get_contents($fileName, FALSE, NULL, $cutBytes, $partSize)
        );
        $cutBytes += $partSize;
        $n++;
    }
    return "El archivo $fileName ha sido partido en $parts en la carpeta $folderDest correctamente";
}
//Ejemplo
//echo cutFile('movie.mp4', 'result', 10);
?>Modo de uso:
cutFile('nombre_del_archivo', 'carpeta_de_destino', cantidad_de_partes);
Luego hago otra función para unir las partes. 👍
Así quedan las partes: (para probar partí error_log)
 
	Una película en 1000 partes: (Le puse un md5 a los nombres y encripté cada parte, por eso pesan diferente)
 
	
			
				Última edición: 
			
		
	
								
								
									
	
		
			
		
		
	
	
			
	
	
		
			
		
		
	
								
							
							 
  
 
		 
					
				 
 
		 
 
		 
 