Это вполне возможно.Используйте Javascript.
Я использую jQuery для выбора элемента ввода.У меня настроено событие on change.
$("#aFile_upload").on("change", function (e) {
var count=1;
var files = e.currentTarget.files; // puts all files into an array
// call them as such; files[0].size will get you the file size of the 0th file
for (var x in files) {
var filesize = ((files[x].size/1024)/1024).toFixed(4); // MB
if (files[x].name != "item" && typeof files[x].name != "undefined" && filesize <= 10) {
if (count > 1) {
approvedHTML += ", "+files[x].name;
}
else {
approvedHTML += files[x].name;
}
count++;
}
}
$("#approvedFiles").val(approvedHTML);
});
Приведенный выше код сохраняет все имена файлов, которые я считаю достойными сохранения на странице отправки, до того, как произойдет отправка.Я добавляю «утвержденные» файлы в val входного элемента, используя jQuery, чтобы при отправке формы отправлялись имена файлов, которые я хочу сохранить.Все файлы будут отправлены, однако теперь на стороне сервера мы должны их отфильтровать.Я еще не написал никакого кода для этого, но используйте свое воображение.Я предполагаю, что это можно сделать с помощью цикла for и сопоставить имена, отправленные из поля ввода, и сопоставить их с переменной $ _FILES (PHP Superglobal, извините, я не знаю переменную файла ruby).
Моя точка зрения - вы можете проверять файлы перед отправкой.Я делаю это и затем выводю его пользователю, прежде чем он / она отправит форму, чтобы сообщить им, что они загружают на мой сайт.Все, что не соответствует критериям, не отображается обратно пользователю, и поэтому они должны знать, что слишком большие файлы не будут сохранены.Это должно работать во всех браузерах, потому что я не использую объект FormData.