|
|
|
|
|
для: maloi_m3
(16.09.2010 в 22:36)
| | А что в данном случае процесс, что в нем интересного, кроме как принудительный вывод какой либо картинки с надписью "Ждите...". А сам процесс, это невидимый для пользователя ток, который мееедленно идет по проводам. ;-) Да и отображается у вас не "ток", а результат его "прибытия" (в указанной ссылке).
Убирайте чекбокс, выбрасывайте открытие окна в функции, оставьте только проверку выбора файла и добавление случайного числа адресу (если нужно):
function StartUpload(f1) {
if(f1.file_1.value==""){alert("Select at least one file to upload");return false;};
var UID = Math.round(10000*Math.random())+'0'+Math.round(10000*Math.random());
f1.action += UID;
}
| Выдачу результата загрузки, выполняемую серверным скриптом upload_status.cgi, переместите в скрипт upload.cgi, она и будет возвращена пользователю (если конечно загрузка будет ОК), в iframe . | |
|
|
|
|
|
|
|
для: sim5
(16.09.2010 в 21:17)
| | Вы что хотите, чтобы в ваш iframe попадал не ответ результата загрузки (можно предположить, что именно это должно быть), а статус загрузки?
Да, вы правильно предположили, мне нужно выводить не результат, а сам процесс.
Вот код в действии: http://loomber.com/upload_form.html
Как видите, сам процесс открылся в новом окне, а хочу чтоб форма оставалась на месте и процесс открывался под ней, а не в новом окне. | |
|
|
|
|
|
|
|
для: maloi_m3
(16.09.2010 в 19:53)
| | Запустите этот файл на локальном сервере:
<html>
<body>
<script>
function f() {
window.open("http://softtime.ru/forum/read.php?id_forum=4&id_theme=76205",'','');
}
</script>
<form action="frm.php" method="post" onsubmit="return(f())" target="ifrm">
<input type="text" name="as" value="AS">
<input type="submit" value="Send">
</form>
<iframe name="ifrm" id="ifrm"></iframe>
</body>
</html>
| и разместив на нем же этот код в файле под именем frm.php:
<? echo '<hr width="100%">' . $_POST['as']; ?>
| Что наблюдаем?
Я вам вроде бы тоже доходчиво изложил, что на помещение ответа сервера в iframe, в вашем коде, также указывает атрибут target вашей формы и ответ в него помещенный будет от той страницы, которая указана в теге action фомы.
В окне, которое у вас открывается, насколько можно понять, отображается процесс/статус загрузки файла на сервер, и формируется случаное значение для upload_id. Вы что хотите, чтобы в ваш iframe попадал не ответ результата загрузки (можно предположить, что именно это должно быть), а статус загрузки? | |
|
|
|
|
|
|
|
для: sim5
(16.09.2010 в 17:59)
| | Здравствуйте, на данный момент как всё работает я понимаю, я прошу вас подправить код, чтоб обработчик: /cgi-bin/upload.cgi?upload_id=, открывался под формой, а не в новом окне, надеюсь доходчиво изложил. | |
|
|
|
|
|
|
|
для: ~AquaZ~
(16.09.2010 в 18:47)
| | Хрень только всякую не надо писать - речь идет о конкретном коде. | |
|
|
|
|
|
|
|
для: sim5
(16.09.2010 в 17:59)
| | <a ... target=iframe_name>...</a> | |
|
|
|
|
|
|
|
для: maloi_m3
(16.09.2010 в 07:05)
| | win1 = window.open(f1.action.split('upload.cgi')[0]+'upload_status.cgi?..... никакого отношения к iframe на странице не имеет. В него будет загружен результат обращения к странице "/cgi-bin/upload.cgi?upload_id=" указанной в action формы, и это определяет атрибут target формы. | |
|
|
|
|
|
|
|
для: maloi_m3
(16.09.2010 в 07:05)
| | Java тут и не пахнет! Код на чистом JavaScript.
Так в чем у вас сложность? | |
|
|
|
|
|
|
| Доброго всем времени суток, возникла проблема, после того как форма отправляет данные, java открывает прогресс загрузки в новом окне.
А мне нужно, что-бы открывала в в iframe под формой.
Насколько я понимаю за открытия отвечают вот эти строки.
win1 = window.open(f1.action.split('upload.cgi')[0]+'upload_status.cgi?upload_id='+UID,'win1','width=320,height=240,resizable=1');
win1.window.focus();
|
Вот сама страница где всё происходит.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<Title></Title>
<META http-equiv=Content-Type content="text-html; charset=UTF-8">
<Script language="JavaScript" type="text/javascript">
//var exts = "jpg|gif|png|bmp|mp3|mpg|mpeg|avi|rar|zip|7z|gz|txt|avi|mpg";
var exts = ".*"; //Use this to accept all Extensions
function StartUpload(f1)
{
if(f1.file_1.value==""){alert('Select at least one file to upload');return false;};
if(!checkExt(f1.file_1.value))return false;
var UID = Math.round(10000*Math.random())+'0'+Math.round(10000*Math.random());
f1.action = f1.action.split('?')[0]+'?upload_id='+UID;
if(f1.popup.checked)
{
win1 = window.open(f1.action.split('upload.cgi')[0]+'upload_status.cgi?upload_id='+UID,'win1','width=320,height=240,resizable=1');
win1.window.focus();
}
return true;
}
function checkExt(value)
{
if(value=="")return true;
var re = new RegExp("^.+\.("+exts+")$","i");
if(!re.test(value))
{
alert("This file extension is not allowed: \n" + value + "\n\nOnly these extensions are allowed: "+exts.replace(/\|/g,',')+" \n\n");
return false;
}
return true;
}
</Script>
</HEAD>
<BODY style="background-color: #f9f9f9;font:13px Arial;text-align:center;">
<form enctype="multipart/form-data" action="/cgi-bin/upload.cgi?upload_id=" method="post" onSubmit="return StartUpload(this);" target="xupload">
Send file: <input name="file_1" type="file" onChange="checkExt(this.value)"><br>
Comment: <input type="text" name="comment">(optional)
<br><br>
<Input type="checkbox" name="popup" checked id="popup"><label FOR="popup" ACCESSKEY="Z">Show upload status in pop-up window</label><br>
<br>
<input type="submit" value="Upload File">
</form>
<br><br>
<iframe src="about:blank" name="xupload" style="position:absolute;left:-9999px;"></iframe>
</BODY>
</HTML>
|
Прошу помощи в решение проблемы, не силён я в ЯВЕ. | |
|
|
|
|