Xpoint
   [напомнить пароль]

Странная проблема с FileReference.upload (файлы закачиваются по 4-е раза)

Метки: [без меток]
2007-10-20 18:56:24 [обр] Алексей В. Иванов(276/2861)[досье]

Схожу с ума...
Не могу понять в чём дело. Есть код для загрузки файлов.
Всё стандартно:

var file:FileReference = fileList[currentFileNum];
file.addListener(this);
_root.debug += 'Start upload file#' + currentFileNum + ' - ' + file.name;
file.upload(uploadUrl);

на this есть слушатели событий onProgress, onComplete и другие.

Проблема: каждый файл из выбранных пользователем отправляется на сервер 4-е раза, причём, первый раз нормально, а в остальных 3-х случаях пхп-скрипт вызывается с правильными данными файла (имя, размер, путь), но битым контентом (что там за данные - непонятно, но явно ничего похожего с тем, что я отправляю)

Самое удивительное, что это проявляется только в браузере (и IE и в FF) и только на живом сервере.

Я вывожу отладочную информацию во flash и вот, что получилось (в Progress выводится закаченный объём):

Start upload file#0 - Changing of the guard.jpg
Progress: [0] 0/76182
Progress: [0] 76182/76182
Progress: [0] 65536/76182
Progress: [0] 76182/76182
Progress: [0] 32768/76182
Progress: [0] 76182/76182
Progress: [0] 0/76182
Progress: [0] 76182/76182
Complete: Changing of the guard.jpg

Start upload file#1 - Chateau Laurier.jpg
Progress: [1] 32768/105809
Progress: [1] 65536/105809
Progress: [1] 98304/105809
Progress: [1] 105809/105809
Progress: [1] 32768/105809
Progress: [1] 98304/105809
Progress: [1] 105809/105809
Progress: [1] 0/105809
Progress: [1] 98304/105809
Progress: [1] 105809/105809
Progress: [1] 0/105809
Progress: [1] 98304/105809
Progress: [1] 105809/105809
Complete: Chateau Laurier.jpg

Т.е. по этим логам можно понять, что upload() вызывается только один раз, а полоса загрузки (Progress) начинает "плясать" и файл после одной загрузки начинает загружаться снова. и это всегда 4-е раза (независимо от объёма и пр. параметров)

Обновил плеер, безрезультативно(

спустя 16 минут [обр] Алексей Севрюков(1/1280)[досье]
Алексей В. Иванов[досье], сам у себя спрашиваешь? ))
спустя 8 часов [обр] Алексей В. Иванов(276/2861)[досье]
У всех) +факт в общую копилку опыта и знаний, внесённый в индекс поисковых машин)
Нашёл я ответ на свой вопрос, наконец. Бился долго.
Понял, что проблема возникает из-за редиректа в скрипте после успешной закачки файла. В документации сказано, что нужно ответ "200 OK", но я не учёл этот момент, когда использовал один и тот же скрипт для закачки изображений из flash и html.
спустя 9 часов [обр] Алексей Севрюков(1/1280)[досье]
Алексей В. Иванов[досье] с редиректом понятно, но почему именно 4 раза? Почему не 2, не 5, а именно 4?
спустя 20 часов [обр] Алексей В. Иванов(276/2861)[досье]
Не знаю, полагаю, в адобе этого тоже не знают т.к. "фича" недокументированная.
Powered by POEM™ Engine Copyright © 2002-2005