Solo mirando por encima el codigo veo que
generas la imagen "por pantalla" ya que no le pasas el segundo parametro a imagejpeg($thumb, $filename);
Cita: imagejpeg($thumb, $filename);
Y si la quieres en un archivo para que los headers ?
Cita: header('Content-type: image/jpeg');