Войти

Показать полную графическую версию : как открыть окно для загрузки файла из JS?


Страниц : [1] 2

Vlad Drakula
16-02-2007, 13:16
как открыть окно для загрузки файла из JS?

задача простая:
есть инпут в форме который отвечает за загрузку файла
нужно сделать другую кнопку которая открывала дислог выбора файла также как еслибы клинкули на кнопке соответсвующего инпута.

как то раньше я находил подобные рещения в поисковиках, а сейчас ничего не смог найти :(

XCodeR
16-02-2007, 15:34
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
низя так делать, форма не отправится...

XCodeR
16-02-2007, 18:24
да, действительно. интересно только почему?
можно использовать 2 формы, если прямого пути не найдется)

Vlad Drakula
16-02-2007, 19:44
XCodeR
т.е. две форму?

XCodeR
16-02-2007, 22:36
т.е. идея таже что я писал выше. просто кнопка 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
я говорю не поможет, а если и сработает то это будет багом и его рано или поздно исправят.
дело в том что импут для загрузки файла это совершенно не инмут для ввода текста и ряд вещей которые можно делдать с текстовыми инпутами не проходит для файловых инпутов!

XCodeR
20-02-2007, 17:56
случайно наткнулся (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