Вы можете предотвратить загрузку файлов с расширением .csv с атрибутом accept, например,
<input class="form-control" required="required" type="file" name="csvfile" id="csvfile" accept=".csv" />
Это не мешает кому-либо изменять расширение, например, в файле xslx, и пытаться загрузить его.Я склонен анализировать строку или две во время потоковой передачи файла и отклонять его, если он не соответствует шаблону, который я ожидаю.Конечно, это не может быть практичным для вашего решения.