Я пытаюсь добиться загрузки-файла-подобного-ajax-использования-скрытого-iframe. Очевидно, что для этой цели доступно множество плагинов, но я думаю, что мои требования немного отличаются. Итак, я пытаюсь добиться этого следующим образом:
HTML:
<!DOCTYPE>
<html>
<style>
.file_upload{cursor:pointer;color:blue;text-decoration:underline;}
</style>
<body>
<div class="file_upload" id="upload1" name="doc1" >Upload doc1</div>
<div class="file_upload" id="upload2" name="doc2" >Upload doc2</div>
<div id="iframe_div"></div>
</body>
</html>
JЗАПРОС:
$(document).ready(function(){
$(".file_upload").click(function(event){
var itr = $(".file_upload").length;
var iframeName = $(this).attr('name') + itr;
var iframeId = $(this).attr('id') + itr;
$('<iframe />', {
name: iframeName,
id: iframeId,
src: 'about:blank'
}).appendTo('#iframe_div');
//append form to body of the iframe
$('<form>',{
name: iframeName + '_form',
id: iframeId + '_form',
action: 'actionName.action',
method: 'POST',
enctype: 'multipart/form-data'
}).appendTo('#' + iframeId).find('body');
//append file input
//trigger 'click' using $('#file_fld_id').trigger('click')
//browse to file and use 'onchange' to trigger
auto-submit of the form
//replace the 'file-upload' div with a progress bar...
//remove the iframe when upload is complete
});
});
Вкратце:
<сильный>1. Открыть окно обзора по щелчку элемента div.
<сильный>2. Загрузите файл, используя скрытый iframe.
Но я думаю, что я слишком хорошо разбираюсь (в jquery), чтобы добиться этого. Или это действительно возможно?? Если это так, пожалуйста, помогите/перенаправьте/что-нибудь..... как получилось, что эта очевидная функциональность должна быть реализована с помощью обходных путей (вспышка, obex, серебряный свет, ....).. аххх.
РЕДАКТИРОВАТЬ (чтобы немного уточнить):
Как я уже упоминал, «мой iframe является динамическим» ... причина в том, что входные данные моего файла должны находиться внутри уже существующей формы с отдельным действием (struts2). У меня есть еще одно действие для загрузки файла. Поскольку у нас не может быть формы внутри формы, поэтому я пытаюсь использовать div внутри моей существующей формы для загрузки файла с другим действием. И у меня есть разные документы, которые нужно загрузить отдельно в этой форме. Итак, в основном я пытаюсь заменить каждый div (один из которых используется для загрузки файла) отдельным iframe, имеющим свою собственную форму (но то же действие будет обрабатывать загрузку), который будет автоматически отправлен в тот момент, когда пользователь нажимает «открыть» во время просмотра файл. Надеюсь, теперь я яснее.