//Чтобы проверить, загружает ли пользователь какой-либо файл
if (FileUploadPath == '')
Если пользователь не выберет файла и закроет диалог выбора, то значение поля не изменится, а значит и не произойдет события onchange. Смысла проверять на пустоту нет, а если считаете, что будет "побочная" загрузка, ну так ее вообще осуществят без вашего скрипта.
Полю типа file можно задать допустимые типы файлов и диалог будет отображать только их. Правда не все браузеры хорошо это поддерживают, есть и косяки, но проверять лучше именно по заданным типам. Итого (как пример):
<html>
<body>
<style>
.upload_preview img{
width: 80px;
height: auto;
margin-right: 10px;
display: inline-block;
}
</style>
<input type="file" id="upload_file" name="upload_file[]" multiple="" accept="image/jpeg,image/png,image/gif"/>
<div id="image_preview" class="upload_preview"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('#upload_file').change(function() {
var f = this.files, i, r = new RegExp(this.accept.replace(/,/g,'|')), b = $('#image_preview');
for(i=0; i<f.length; ++i) {
if(r.test(f[i].type)) b.append("<img class='thumb' src='"+URL.createObjectURL(f[i])+"'>");
}
});
});
</script>
</body>
</html>