Имя: Пароль:
1C
 
VK API залить видеозапись
0 Victor1c
 
06.06.15
14:46
Вобщем пробую отправить видеозапись POST запросом, в ответ получаю = invalid file

Код такой вот


        РазделительСтрок = Символ(10)+Символ(13);
        Видео = (Новый ДвоичныеДанные("C:\*****\111.avi"));

        ИмяВходногоФайла = ПолучитьИмяВременногоФайла("in");
    ИмяВходногоФайла1 = ПолучитьИмяВременногоФайла("in1");
    ИмяВходногоФайла2 = ПолучитьИмяВременногоФайла("in2");
    ИмяВходногоФайла3 = ПолучитьИмяВременногоФайла("in2");
    ИмяВыходногоФайла = ПолучитьИмяВременногоФайла("out");
    
    Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");
    
    ВходнойФайл = Новый ЗаписьТекста(ИмяВходногоФайла1, КодировкаТекста.ANSI, Символы.ПС);
    ВходнойФайл.ЗаписатьСтроку("--"+Boundary);
    ВходнойФайл.ЗаписатьСтроку("Content-Disposition: form-data; name=""video_file""; filename=""111.avi""");
    ВходнойФайл.ЗаписатьСтроку("Content-Type: application/octet-stream");
    ВходнойФайл.ЗаписатьСтроку("");
    ВходнойФайл.Закрыть();
    
    Видео.Записать(ИмяВходногоФайла2);
    
    ВходнойФайл = Новый ЗаписьТекста(ИмяВходногоФайла3, КодировкаТекста.ANSI, Символы.ПС);
    ВходнойФайл.ЗаписатьСтроку("");
    ВходнойФайл.ЗаписатьСтроку("--"+Boundary);
    ВходнойФайл.Закрыть();

    МассивФайлов = Новый Массив;
    МассивФайлов.Добавить(ИмяВходногоФайла1);
    МассивФайлов.Добавить(ИмяВходногоФайла2);
    МассивФайлов.Добавить(ИмяВходногоФайла3);
    
    ОбъединитьФайлы(МассивФайлов, ИмяВходногоФайла);
    
    ФайлОтправки = Новый Файл(ИмяВходногоФайла);
    РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());
    
    
    
        WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
    
    Текст = Новый ТекстовыйДокумент;
    Текст.Прочитать(ИмяВходногоФайла, КодировкаТекста.ANSI);
    ЗП = Текст.ПолучитьТекст();
    
    ФайлЗапроса = Новый Файл(ИмяВходногоФайла);
    
    РазмерФайлаОтправки = XMLСтрока(ФайлЗапроса.Размер());
  
        WinHttp.Open("POST", АдресЗагрузки, 0);
        WinHttp.SetRequestHeader("Content-Type","multipart/form-data;boundary=" + Boundary);
        WinHttp.SetRequestHeader("Content-Length", РазмерФайлаОтправки);
        WinHttp.Send(Зп);

Текст запроса такой получается

--7e446ef309f34d50a9027c394a3b5279
Content-Disposition: form-data; name="video_file"; filename="111.avi"
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary

//Здесь данные файла

--7e446ef309f34d50a9027c394a3b5279

Уже кучу времени убил. Не пойму что не правильно. Может у кого есть опыт по этому вопросу?
1 Victor1c
 
06.06.15
15:18
Может Видео = (Новый ДвоичныеДанные("C:\*****\111.avi"));
2 Victor1c
 
06.06.15
15:18
Что нарушает, может есть другие способы потянуть двоичные данные?
3 Victor1c
 
06.06.15
15:19
Хотя похожий код, только отправка картинок - работает.
4 Victor1c
 
06.06.15
15:28
Если за комментировать  МассивФайлов.Добавить(ИмяВходногоФайла2);
5 Victor1c
 
06.06.15
15:29
Тогда пишет ошибку no video file
Получается  сам запрос сайт принимает
6 Victor1c
 
08.06.15
09:48
Ни у кого нет опыта в данном вопрос?