Закачка файлов на сервер с помощью XMLHttpRequest

  • Автор темы Автор темы Fakir
  • Дата начала Дата начала

Fakir

в работе над собой
Закачка файлов на сервер с помощью XMLHttpRequest

Возможно ли с помощью XMLHttpRequest отправить файл, который указал пользователь в форме, на сервер?
 
Печальненько :(

-~{}~ 21.06.06 13:37:

Но как делает это GMail...?
 
Ну скажем так, про то как это делает GMail там ничего не сказано. Но вариант напрашивается один iframe...
 
Что значит переносишь форму? JS не позволяет записать свойства поля типа file.
 
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
<style type="text/css">
<!--
-->
</style>
<script>
function todo() {
  window.frames['prob'].document.body.appendChild(document.getElementById("fil") );
}

</script>
</head>

<body>
<a href="javascript:todo(); ">перенести</a>
<label>
	<input type="file" name="file" id="fil"/>
</label>
</body>
<iframe name="prob"></iframe>
</html>

мож так поймеш
 
седня наконецто получил яшик на GMail
смотрел что да как там, вобшем с кодом разобраться не удалось , все запрятали не разбеоещ, но по интерфейсу можно предположить как у них что устроено.
во первых заметно что для разных браузеров отправка файла по разному реалезована, потому для FF то что уже писал наверника используют, под IE форма находится в скрытом фрейме и вызов <input type="file" name="file" id="fil"/> производится window.frames['prob'].document.getElementById("fille").click(); (это при добавлении файла) , и потом сразу отправка (у фф чуть позже)
вот для оперы не понял как у гмайла но оба подхода не подходят но похоже как у FF

у ковонибуть есть мнения на этот счет?
 
я делал проше

ifram name="ifr" 1х1 пиксель

в форме делаю

<form target="ifr"
<input type="file"

все это при сабмите уходит в iframe, а в нем уже возвращаем body onLoad="... уже действия над окном парентом (например вывод списка загруженных фалов)
 
разговор идет о отправки файлов
каким оброзом у тебя все уходит в iframe, немного кода приведе в частности для <input type="file"
 
flash-vkv, MpaK69 об этом в общем то и говорит, форма, в которой поля типа "file", отправляються через iframe.

Реализовал для IE примерно таким макаром:

Код:
...
<form action="file_download.php" id="section-form" method="POST" enctype="multipart/form-data" target="ajax_ifrm">
<imput type="file" name="my_file">
<imput type="submit" value="отправить">
</form>

<iframe name="ajax_ifrm" width="1" height="1" frameborder="0"></iframe>
...

Соответственно, когда пользователь субмитит форму, то она отправляеться через указанный ей target. Ну а получив ответ можно заменять/выводить инфу путем обращения из iframe в parent окно.

В общем, спасибо господа. Все как обычно через лес...
 
:) пришол на работу открыл пример который еше на прошлой неделе затянул, взглянул и понял что все так просто, какраз такой пример. тогда не понятно немного зачем google в майле для IE сделал не совсем так, во всяком случии там кликаеш не на <imput type="file" name="my_file"> а на псевдо ссылку
 
flash-vkv, для красоты ;о)

Кстати, а как это можно сделать?
 
Сверху