Я думаю, у вас есть 2 основных вопроса:
- Как выбрать локальные файлы для загрузки через флэш-память?
- Как отправить несколько файлов на сервер как POST?
Для # 1 Вам необходимо использовать flash.net.FileReference .
Для # 2 Во флеш-памяти нет встроенного загрузчика 'Multipart', который, я уверен, вам нужен. Лучшее, что я нашел, - это гениальный разработчик по имени Евгений: http://blog.inspirit.ru/?p=198. Это прекрасно работает, хотя лично у меня были некоторые проблемы с обработчиком onComplete в IE8 и IE9. Я уверен, что это вина IE, а не Юджина. Я работал над этим, слушая событие HTTPStatusEvent, вот так:
var ml:MultipartURLLoader = new MultipartURLLoader();
ml.addEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatusEvent);
ml.addVariable('Content-Type', "image/png");
ml.addFile(pngStream, filename, "file", "image/png");
ml.load('http://...');
function onHTTPStatusEvent( event: HTTPStatusEvent ){
if(stat == 0 || (stat >= 200 && stat < 205)){
//upload success
}else{
//some kinda error
}
}
(Это должно работать с несколькими addFiles (_);)
Я также слушаю стандартные события:
ml.addEventListener(Event.COMPLETE, uploadComplete);
ml.addEventListener(ProgressEvent.PROGRESS, uploadProgress);
Но не удалось заставить PROGRESS работать вообще, и COMPLETE не работает на IE ... Кто-нибудь знает какие-либо альтернативы, которые работают на IE? Код Юджина сейчас работает для меня, но я не думаю, что смогу добавить индикатор загрузки "как есть ..." как есть ... что было бы здорово.