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

Fakir

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

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

Fakir

в работе над собой
Печальненько :(

-~{}~ 21.06.06 13:37:

Но как делает это GMail...?
 

Fakir

в работе над собой
Ну скажем так, про то как это делает GMail там ничего не сказано. Но вариант напрашивается один iframe...
 

Fakir

в работе над собой
Что значит переносишь форму? JS не позволяет записать свойства поля типа file.
 

flash-vkv

Новичок
Код:
<!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>
мож так поймеш
 

flash-vkv

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

у ковонибуть есть мнения на этот счет?
 

MpaK69

Новичок
я делал проше

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

в форме делаю

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

все это при сабмите уходит в iframe, а в нем уже возвращаем body onLoad="... уже действия над окном парентом (например вывод списка загруженных фалов)
 

flash-vkv

Новичок
разговор идет о отправки файлов
каким оброзом у тебя все уходит в iframe, немного кода приведе в частности для <input type="file"
 

Fakir

в работе над собой
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 окно.

В общем, спасибо господа. Все как обычно через лес...
 

flash-vkv

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

Fakir

в работе над собой
flash-vkv, для красоты ;о)

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