нажатие кнопки «Выбрать файл» в форме в фрейме (с помощью jquery) - PullRequest
0 голосов
/ 10 августа 2010

Я использую плагин jquery iframe для добавления HTML в мой iframe. Среди прочего, это содержит:

<form id="update" action="dummy" method="POST" enctype="multipart/form-data">
     <div><input type="file" name="data" id="update_data"></div>
</form>

Затем я запускаю следующую функцию. Наблюдая за весельем в отладчике Chrome, я вижу что я успешно фиксирую на фрейме, форме и поле ввода. Но средство выбора не появляется, и форма не отправляется в службу (JAX-RS).

function update_file(file) {
    var iframe = $('#new_file_iframe');
    var delform = iframe.contents().find("#update");
    var fileinput = iframe.contents().find("#update_data");
    // URLencoding?
    delform.attr("action", "/rex-ws/service/jape/update-file/" + file);
    fileinput.click();
    delform.submit();
}

Возможно, click - это не то, что нужно, чтобы его отключить?

Ответы [ 2 ]

1 голос
/ 10 августа 2010

Я сделал это в проекте, я скажу вам, что это немного сложно.

Что у вас есть (ну, по крайней мере, почему я это сделал):

  • У вас есть вход [файл] на главной странице
  • На вашемдействие загрузки (т. е. событие щелчка на главной странице) создайте и вставьте iframe с формой, продублируйте свой входной файл [файл] и прикрепите его к вновь созданной форме iframe
  • Отправьте форму в iframe с помощью ajaxSubmit (jQueryплагин)

Если хотите, я мог бы добавить код здесь (но он содержит около 120 строк).

.. fredrik

Редактировать:

Если вы разрабатываете сайт HTML5, взгляните на новый API входного файла.https://developer.mozilla.org/en/using_files_from_web_applications

1 голос
/ 10 августа 2010

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

Я уверен, что запуск fileinput.click() исключен по этой причине.

Flash-загрузчики, такие как Uploadify и SWFUpload имеют больше возможностей здесьЯ думаю, что можно открыть программу выбора файлов с ними.Однако использование одного из этих загрузчиков потребует некоторой работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...