Це цілком можливо. Використовуйте Javascript.
Я використовую jQuery для вибору вхідного елемента. Я налаштував це на подію зміни.
$("#aFile_upload").on("change", function (e) {
var count=1;
var files = e.currentTarget.files;
for (var x in files) {
var filesize = ((files[x].size/1024)/1024).toFixed(4);
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.