Должен быть подключен Vk Api к флэшке и авторизован пользователь. Так реализуется отправка файла Вконтакте в моем приложении:
Код AS3:
VK.api('photos.getWallUploadServer',{ uid: userid },responseFromServer,onError);
userid - номер пользователя (можно получить через friends.get). Если не указано - постит на стенку пользователя. Если постить в группу, то gid: группа.
Для загрузки картинки я использовал класс
MultipartURLLoader. Скачать
например тут. Ему передаем файл картинки в ByteArray.
Код AS3:
function responseFromServer(data)
{
mll = new MultipartURLLoader();
mll.addEventListener(Event.COMPLETE, onUploadCompleteThroughAlarm);
mll.addFile(byteArray, "file.jpg", "file1", 'image/jpg');
mll.load(data.upload_url);
}
Картинка загружена Вконтакте. Теперь сохраняем её на стену пользователю.
Код AS3:
function onUploadCompleteThroughAlarm(e:Event)
{
var answer:String = mll.loader.data;
var data:Object = JSON.parse(answer);
VK.api('photos.saveWallPhoto', {uid: userid, server:data.server, photo:data.photo, hash:data.hash }, onSaveWallPhoto, onError2);
}
Если картинка не сохраняется (например, не берется её ByteArray), то есть большая вероятность, что нарушены правила безопасности флэша.