Напрямую обращаться к input.value нельзя (чтение в разных браузерах возвращает разные результаты, запись блокируется), но это и не надо.
На самом деле всё просто:
делаете один input[type="file"] (вне всяких форм),
и на onChange вешаете обработчик, который бы:
- создавал form, с нужными аргументами
- (!)копировал текущий инпут в эту форму
а чтобы не смущать пользователя инпутом-манипулятором с последним выбранным файлом, его обычно делают прозрачным и накладывают на него какую-нибудь картинку, например.