VK API Загрузка фотографий в альбом пользователя - C#
Формулировка задачи:
Доброй ночи, кому-то уже дня...
Пытаюсь загрузить фотографию в альбом к себе. Как известно, загрузка проходит в 3 этапа.
1. С помощью метода photos.getUploadServer приложение узнает http-адрес для загрузки фотографий в зависимости от альбома, в который их необходимо загрузить.
Тут все замечательно, ответ в json приходит корректный.
2. Приложение формирует POST-запрос на полученный адрес.
Запрос должен содержать поля file1-file5, которые содержат файлы с изображениями (JPG, PNG, BMP или GIF).
С передачей параметров, извлеченных из прошлого json ответа все нормально.
Проблема заключается в том, что я не знаю как прикрепить эти file1-file5.
Интересует преодоление именно 2-го этапа. Пусть у нас уже есть условный полученный адрес
Помогите пожалуйста, товарищи, изящным наглядным кодом.
string urlPostResult = "http://cs613528.vk.com/upload.php?act=do_add&mid=130362776&aid=186480713&gid=0&hash=28e1a48d1f3a6115214125889570050a&rhash=26926211185e0644e1e9a850f0714d2b&swfupload=1&api=1";
Решение задачи: «VK API Загрузка фотографий в альбом пользователя»
textual
Листинг программы
Image bitmap;
string filename = Path.Combine("foto/1.jpg");
bitmap = new Bitmap(filename);
string base64;
using (MemoryStream ms = new MemoryStream())
{
bitmap.Save(ms, ImageFormat.Jpeg);
base64 = Convert.ToBase64String(ms.ToArray());
}
request = (HttpWebRequest)WebRequest.Create(url_upload_server); //загружаем картинку
request.Method = "POST";
request.ContentType = "multipart/form-data; boundary=------ewjgo8er7g9ejgoie8r7ger9guejog87";
request.UserAgent = useragent;
string result;
using (var requestStream = request.GetRequestStream())
using (var writer = new StreamWriter(requestStream))
{
writer.Write("------ewjgo8er7g9ejgoie8r7ger9guejog87\n\r");
writer.Write("Content-Disposition: form-data; name=\"file\"; filename=\"1.jpg\"\n\r");
writer.Write("Content-Type: image/jpeg\"\n\r");
writer.Write(base64);
}