Cuando abres el archivo .. estás tomando el nombre del archivo que has subido . .pero no el que tiene donde PHP lo sube temporalmente hasta que lo muevas o como es tu caso .. simplemente lo usas (lo lees) para hacer tu compresión y crear un archivo nuevo a partir de los datos de este en otra ruta que ya defines.
Código PHP:
$data = implode(" ", file(HTTP_POST_FILES['archivo']['tmp_name']));
El nombre del archivo que generas .. no sé de donde sale $namefile (o no lo veo en ese código).
$fp = fopen("gz/$namefile.gz", "w");
Y otros consejos: NO globalices variables $HTTP_POST_FILES y las demás .. USA los arrays superglobales:$_FILES y afines ..
Un saludo,