Можно файл залить целиком на сервер с формой, отображающей процент загрузки (делается через APC).
В скрипте снять ограничение на время исполнения через set_time_limit(0);
А продолжить работу после закрытия браузера через ignore_user_abort(true);
Читать файл построчно, чтобы не забивать всю оперативку и выполнять SQL INSERT на каждой строке.
За процессом обработки можно следить через создание дополнительной таблицы, куда будет записываться идентификатор загрузки, количество строк в файле, количество обработанных строк. И на отдельной странице следить за ходом выполнения.
Для увеличения скорости рекомендуется делать INSERT не по одной строчке, а хотя бы по 100.