Показать полную графическую версию : как открыть окно для загрузки файла из JS?
Vlad Drakula
16-02-2007, 13:16
как открыть окно для загрузки файла из JS?
задача простая:
есть инпут в форме который отвечает за загрузку файла
нужно сделать другую кнопку которая открывала дислог выбора файла также как еслибы клинкули на кнопке соответсвующего инпута.
как то раньше я находил подобные рещения в поисковиках, а сейчас ничего не смог найти :(
Vlad Drakula
а в чем "надобность" то?
как вариант(первое, что пришло в голову):
<html>
<body>
<form name=f1>
<input type="file" name="el1">
</form>
<a href=# onclick=document.forms['f1'].elements['el1'].click()>Open File Dialog</a>
</body>
</html>
возможно можно как-то использовать execCommand(); (?)
P.S. как выяснилось, работает только в IE.
Vlad Drakula
16-02-2007, 16:01
XCodeR
вообще вполне достаточно чтобы работало только в IE...
Vlad Drakula
16-02-2007, 17:29
XCodeR
низя так делать, форма не отправится...
да, действительно. интересно только почему?
можно использовать 2 формы, если прямого пути не найдется)
Vlad Drakula
16-02-2007, 19:44
XCodeR
т.е. две форму?
т.е. идея таже что я писал выше. просто кнопка Submit относится к другой форме, а перед отправкой в ее <input type=file> вставляется значение из первой формы.
понтное дело, что второй инпут-файл надо скрыть через css.
криво, но может и заработает.
Vlad Drakula
16-02-2007, 22:39
XCodeR
а это даже в терии не может заработать, даже пробовать не имеет смысла
Prisoner
17-02-2007, 04:39
Почему же? Достаточно клонировать ноду input type=file... ну или всю форму.
Vlad Drakula
17-02-2007, 10:43
Prisoner
настройки системной безопасности.
Prisoner
19-02-2007, 11:38
Более жесткие чем по умолчанию? К примеру JsHttpRequest от DK делает это довольно успешно.
Vlad Drakula
19-02-2007, 13:31
Prisoner
JsHttpRequest может загрузить файл с локального диска на сервер?
Prisoner
19-02-2007, 14:39
Хм... вопрос довольно таки размыт, однако автор описывает возможность ajax-аплоада файлов силами библиотеки.
Vlad Drakula
19-02-2007, 14:45
Prisoner
любая возможность загрузки файлов с машины пользователя чисто на JS это огромная дыра в системной безопасности!
Prisoner
19-02-2007, 18:13
Разумеется. Да я не об этом, сказано было к вопросу о клонировании нод. Гляньте код.
Vlad Drakula
20-02-2007, 10:46
Prisoner
я говорю не поможет, а если и сработает то это будет багом и его рано или поздно исправят.
дело в том что импут для загрузки файла это совершенно не инмут для ввода текста и ряд вещей которые можно делдать с текстовыми инпутами не проходит для файловых инпутов!
случайно наткнулся (http://www.microsoft.com/technet/scriptcenter/topics/htas/fileopen.mspx).
особо не вчитывался, но вдруг поможет.
Vlad Drakula
20-02-2007, 23:16
XCodeR
HTA это уже другой вопрос... мне наверное его еще предстоит изучать как и JScript
на самом деле решение уже найдено и в недрено...
суть в том что инпут для ввода файла делается прозрачным и размещается нат тем местом где вы хотите отлавливать клик.
вы как бы кликаете по кнопке но на самом деле вы кликаете по прозрачному импуту...
и как обычно полный обман пользователя... да уж так получилось, в последнее время приходится очень часто это делать...
Prisoner
21-02-2007, 03:17
Prisoner
я говорю не поможет, а если и сработает то это будет багом и его рано или поздно исправят.
дело в том что импут для загрузки файла это совершенно не инмут для ввода текста и ряд вещей которые можно делдать с текстовыми инпутами не проходит для файловых инпутов! Решать, в конечном счете, только Вам. Можно подождать когда эту возможность отнесут к багам и закроют :).
vadimiron
21-02-2007, 16:41
Vlad Drakula
А если указать src в инпуте и путь к рисунку, тогда кнопочка рисунком может быть заменится?
Или вопрос не про это??
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.