Вы перечислили все известные мне возможности, однако, насколько мне известно, даже загрузки на основе AJAX используют некоторое количество Flash (например, Uploadify ).
Если вы спросите меня, перейдите на Flash. У большинства пользователей он есть, и его меньше всего нужно настраивать.
Между прочим, использование фреймворка JavaScript часто является хорошей идеей, независимо от вашего вопроса. Увеличение размера проекта незначительно (20-100 кб), и эти библиотеки нужно загружать только один раз. Они действительно облегчают работу много вещей и обеспечивают согласованную основу для вашего пользовательского интерфейса. Если вы используете много Javascript, вам почти всегда лучше использовать Framework.