No, I think I looked at the upload related functions. But I did the error_log trick now and here is a list of hooks that are called when you upload a file (select the file from you computer and upload it to the first stage of the three step form).
[24-Nov-2017 22:58:09 Europe/Helsinki] LoadComponentHandler
[24-Nov-2017 22:58:09 Europe/Helsinki] submissionfiledao::_Constructor
[24-Nov-2017 22:58:09 Europe/Helsinki] articledao::_Constructor
[24-Nov-2017 22:58:09 Europe/Helsinki] authordao::_Constructor
[24-Nov-2017 22:58:09 Europe/Helsinki] submissiondao::_getbyid
[24-Nov-2017 22:58:09 Europe/Helsinki] dao::_getdataobjectsettings
[24-Nov-2017 22:58:09 Europe/Helsinki] ArticleDAO::_fromRow
[24-Nov-2017 22:58:09 Europe/Helsinki] submissionfilesuploadform::Constructor
[24-Nov-2017 22:58:09 Europe/Helsinki] submissionfilesuploadform::readuservars
[24-Nov-2017 22:58:09 Europe/Helsinki] submissionfilesuploadform::readuservars
[24-Nov-2017 22:58:09 Europe/Helsinki] genredao::_Constructor
[24-Nov-2017 22:58:09 Europe/Helsinki] genredao::_getbyid
[24-Nov-2017 22:58:09 Europe/Helsinki] dao::_getdataobjectsettings
[24-Nov-2017 22:58:09 Europe/Helsinki] GenreDAO::_fromRow
[24-Nov-2017 22:58:09 Europe/Helsinki] usergroupdao::_useringroup
[24-Nov-2017 22:58:09 Europe/Helsinki] submissionfilesuploadform::validate
[24-Nov-2017 22:58:09 Europe/Helsinki] genredao::_getbyid
[24-Nov-2017 22:58:09 Europe/Helsinki] dao::_getdataobjectsettings
[24-Nov-2017 22:58:09 Europe/Helsinki] GenreDAO::_fromRow
[24-Nov-2017 22:58:09 Europe/Helsinki] submissionfiledaodelegate::_Constructor
[24-Nov-2017 22:58:09 Europe/Helsinki] submissiondao::_getbyid
[24-Nov-2017 22:58:09 Europe/Helsinki] dao::_getdataobjectsettings
[24-Nov-2017 22:58:09 Europe/Helsinki] ArticleDAO::_fromRow
[24-Nov-2017 22:58:09 Europe/Helsinki] submissionfiledaodelegate::_insertobject
[24-Nov-2017 22:58:09 Europe/Helsinki] genredao::_getbyid
[24-Nov-2017 22:58:09 Europe/Helsinki] dao::_getdataobjectsettings
[24-Nov-2017 22:58:09 Europe/Helsinki] GenreDAO::_fromRow
[24-Nov-2017 22:58:09 Europe/Helsinki] usergroupdao::_getbyid
[24-Nov-2017 22:58:09 Europe/Helsinki] dao::_getdataobjectsettings
[24-Nov-2017 22:58:09 Europe/Helsinki] UserGroupDAO::_returnFromRow
[24-Nov-2017 22:58:09 Europe/Helsinki] pkpuserdao::_getbyid
[24-Nov-2017 22:58:09 Europe/Helsinki] dao::_getdataobjectsettings
[24-Nov-2017 22:58:09 Europe/Helsinki] UserDAO::_returnUserFromRowWithData
[24-Nov-2017 22:58:09 Europe/Helsinki] submissionfiledaodelegate::getLocaleFieldNames
[24-Nov-2017 22:58:09 Europe/Helsinki] submissionfiledaodelegate::getAdditionalFieldNames
[24-Nov-2017 22:58:09 Europe/Helsinki] dao::_updatedataobjectsettings
[24-Nov-2017 22:58:09 Europe/Helsinki] submissiondao::_getbyid
[24-Nov-2017 22:58:09 Europe/Helsinki] dao::_getdataobjectsettings
[24-Nov-2017 22:58:09 Europe/Helsinki] ArticleDAO::_fromRow
[24-Nov-2017 22:58:09 Europe/Helsinki] submissionfileeventlogdao::_Constructor
[24-Nov-2017 22:58:09 Europe/Helsinki] Request::getRemoteAddr
The submissionfilesuploadform hooks seemed to be useless, or at least I could not find any trace of the uploaded file in them.
However, in submissionfiledaodelegate::_insertobject
you get
[24-Nov-2017 23:35:45 Europe/Helsinki] Array
(
[0] => INSERT INTO submission_files
(revision, submission_id, source_file_id, source_revision, file_type, file_size, original_file_name, file_stage, date_uploaded, date_modified, viewable, uploader_user_id, user_group_id, assoc_type, assoc_id, genre_id, direct_sales_price, sales_type)
VALUES
(?, ?, ?, ?, ?, ?, ?, ?, '2017-11-24 23:35:45', '2017-11-24 23:35:45', ?, ?, ?, ?, ?, ?, ?, ?)
[1] => Array
(
[0] => 1
[1] => 17
[2] =>
[3] =>
[4] => image/svg+xml
[5] => 63108
[6] => logo.svg
[7] => 2
[8] => 1
[9] => 1
[10] => 2
[11] =>
[12] =>
[13] => 1
[14] =>
[15] =>
)
[2] =>
)
Here you can see the file type, but I think that when you get here, the file is already uploaded to the server. So you would have to write a plugin that checks this data and if there is a problem, would remove the already uploaded file.
That is probably fairly easy to do, however, the problem is how to give feedback to the user that the file type is not what is expected.