powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / VK API Загрузка фотографии в альбом
25 сообщений из 30, страница 1 из 2
VK API Загрузка фотографии в альбом
    #39721171
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Написал на днях сринкшотер, хочу научится загружать свои скриншоты сразу в вк и получать на неё ссылку.

Сделал авторизацию, делаю запросы и тд, не проблема.
Но вот с загрузкой фоток.....

photos.getUploadServer
Возвращает адрес сервера для загрузки фотографий.

окей, не проблема.

Передача файла
Передайте файлы на адрес upload_url, полученный в предыдущем пункте, сформировав POST-запрос с полями file1-file5. Эти поля должны содержать изображения в формате multipart/form-data.


Как собственно сделать этот multipart/form-data ?

Помогите пожалуйста))
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721180
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9neКак собственно сделать этот multipart/form-data ?

Прочитать соответствующий RFC на MIME не предлагать?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721184
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721185
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята, делаю так.
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
{global var} Token, UserID, Otvet,  Response,ID_ALBUM, UPLOAD_URL, VK_SERVER, VK_PHOTOS_LIST, VK_HASH, VK_AID: string;

  FormData := TIdMultiPartFormDataStream.Create;

 FileName_S := form1.EDIT_PATH.Text + Form1.PREFIX.Text + IntToStr(0) + '.JPG'; // путь картинки
FormData.AddFile('file1', FileName_S , 'image/jpeg' );

    RESPONSE:= IDHTTP1.Post(UPLOAD_URL, FORMDATA);
     SMEMO1.Text := RESPONSE;

   FormData.Free;

   VK_SERVER := SO(smemo1.text).S['server'];
   VK_PHOTOS_LIST := SO(smemo1.text).S['photos_list'];
   VK_AID := SO(smemo1.text).S['aid'];
   VK_HASH := SO(smemo1.text).S['hash'];


       smemo1.Clear;
      Response := send('GET','https://api.vk.com/method/photos.save?album_id='+ ID_ALBUM +'&server=' +
      VK_SERVER + '&photos_list=' + VK_PHOTOS_LIST +'&hash=' + VK_HASH +'&' + token+'&v=5.87');
   sMemo1.Text := MyUtf8ToAnsi(Response);



Ответы от вк идут нормально, получаю хэш и тд, но с последним гет запросом проблема.
Ответ от вк:
{"error":{"error_code":100,"error_msg":"One of the parameters specified was missing or invalid: photos_list is invalid","request_params":[{"key":"oauth","value":"1"},{"key":"method","value":"photos.save"},{"key":"album_id","value":"257509163"},{"key":"server","value":"850220"},{"key":"photos_list","value":"[]"},{"key":"hash","value":"139d510540f7b3a80a5ae808360b711d"},{"key":"v","value":"5.87"}]}}

Ругается как я понял на photos_list. Посмотрел что мне даёт вк, когда я его получаю.... Там тупо скобочки []
Я их и передаю, как написано в документалке. Понять не могу, ватафак? ))
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721189
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
photos_list параметр, возвращаемый в результате загрузки фотографий на сервер.
строка

по сути я не могу сохранить картинку которую загрузил.
Я получаю от вк этот параметр photos_list в нём это []
Я передаю то, что мне дал вк, как он этого и хотел. Но почему параметр не валидный? Что конкретно вк хочет получить?
Может что-то должно быть между скобками? Ну опять же, мне передаются пустые скобки почему-то.
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721190
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
{"server":849536,"photos_list":"[]","aid":257509163,"hash":"47b814a6b45edb76f6549372cb6a97a1"}
Вот ответ в JSON, photos_list - пуст, только скобки.
как мне быть?(
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721191
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОТБОЙ РЕБЯТА, я рак ппц.. . сменил путь каринки и всё получилось)) вторые сутки кодю, туплю)))) отдохнуть пора ....
тем не менее спасибо всем кто ответил !
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721196
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опять я))
не могу грузить картинки в вк, если у них русские символы в имени.
брал один и тот же скрин, переименовывал и проверял.

игрался с ANSITOUTF8 b наоборот... Пробовал функцию URLEncode, myutf8toansi... вобщем я не шарю в этом, просветите, что нужно сделать, что бы вк понял русские символы?

и да, путь к файлу лежит в переменной. Эти манипуляции с utf8, ansi... Их где делать :
Код: pascal
1.
2.
 FileName_S :=   { ТУТ???? }   edit_path.Text + prefix.Text + inttostr(1) + '.JPG' ;
   FormData.AddFile('file1',    {  ИЛИ ТУТ???? }   FileName_S, 'image/jpeg' );



Люди, помогите пожалуйста))
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721200
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АААААРР!!!! мне кажется это либо idhttp либо multipartformdata.....
кодировка сраная, всю ночь на нее потратил, гугл перерыл, яндекс перерыл, перепробовал что мог - ничего не помогает!
спасайте ребята) на вас надежда)
я спать, больше не могу...
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721201
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для начала бы сообщил какой у тебя Delphi
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721418
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tactical Nuclear Penguinдля начала бы сообщил какой у тебя Delphi
delphi7, win7 64
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721421
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
инди обновлённая. 10.6.2
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721473
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я скопирую из окна кода, комментарии, которые на русском языке, они будут отображаться таким образом
ÓÇÍÀÅÌ ID ÀËÜÁÎÌÎÂ---- ÁÅÐ¨Ì ÏÅÐÂÛÉ ÏÎÏÀÂØÈÉÑß
В самой дельфе всё на русском, но при копировании куда либо, преврощяются в крокозябры. так и должно быть???
Может из-за этого я не могу перекодировать ?

delphi 7, indy 10.6.2, win7x64
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721489
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9neЕсли я скопирую из окна кода, комментарии, которые на русском языке, они будут отображаться таким образом
ÓÇÍÀÅÌ ID ÀËÜÁÎÌÎÂ---- ÁÅÐ¨Ì ÏÅÐÂÛÉ ÏÎÏÀÂØÈÉÑß
В самой дельфе всё на русском, но при копировании куда либо, преврощяются в крокозябры. так и должно быть???
Может из-за этого я не могу перекодировать ?

delphi 7, indy 10.6.2, win7x64
Перед тем, как скопировать текст, переключитесь на русский язык, скопируйте в буфер обмена и вставьте в блокноте - кракозябры не должны появиться.
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721511
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребят, вот есть переменная FileName_S
В ней путь, к примеру D:/Скриншот_1.jpg
Что с ней сделать, что бы в отправке вк получала то, что ей надо? в плане кодировки..
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721535
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9neРебят, вот есть переменная FileName_S
В ней путь, к примеру D:/Скриншот_1.jpg
Что с ней сделать, что бы в отправке вк получала то, что ей надо? в плане кодировки..По идее просто указать путь к реальному файлу, в d7 в обычном ansi, это путь для библиотеки Indy.

авторПередайте файлы на адрес upload_url, полученный в предыдущем пункте, сформировав POST-запрос с полями file1-file5. Эти поля должны содержать изображения в формате multipart/form-data.
тынц1

пырвые же ссылки
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721539
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
  FormData := TIdMultiPartFormDataStream.Create;
// FileName_S := edit_path.Text + prefix.Text  + inttostr(1) + '.JPG' ; // D:/Скриншот_1.JPG
   FormData.AddFile('file1',  FileName_S  , 'image/jpeg' );
    RESPONSE:= IDHTTP1.Post(UPLOAD_URL, FORMDATA);
     SMEMO1.Text := RESPONSE;


Люди, ну комон, ну))

Пока что сделал обычное сохранение скриншота как мне надо
и сохранения специально для вк C:/VK.JPG
сохраняю в корень диска C:/ что бы 100% не было русских букв в папках. после удачной загрузки в вк, удаляю скриншот.

Нужно что-то делать с переменной, в которой находится путь, ведь там может быть не только скриншот с русскими буквами, но и папка, в которой он хранится, тоже может иметь русские буквы.
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721540
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
переводи в utf8
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721542
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9neНужно что-то делать с переменной, в которой находится путь, ведь там может быть не только
скриншот с русскими буквами, но и папка, в которой он хранится, тоже может иметь русские
буквы.

Если бы ты прочёл RFC, то знал бы, что имя папки ни в коем случае на сервер не передаётся.
Ну и что делать с русскими буквами в имени - тоже.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721543
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)Tech N9neРебят, вот есть переменная FileName_S
В ней путь, к примеру D:/Скриншот_1.jpg
Что с ней сделать, что бы в отправке вк получала то, что ей надо? в плане кодировки..По идее просто указать путь к реальному файлу, в d7 в обычном ansi, это путь для библиотеки Indy.

авторПередайте файлы на адрес upload_url, полученный в предыдущем пункте, сформировав POST-запрос с полями file1-file5. Эти поля должны содержать изображения в формате multipart/form-data.
тынц1

пырвые же ссылки
я не понял ничего по поводу казания файла.
я и так просто указываю существующий файл, и он грузится на сервер и сохраняется отлично. Если только нет русских букв в этой самой переменной. Вероятно кодировка.

про ссылку на multipartformdata, в ссылке что вы дали, вопрос не о том, что меня интересует.

Наверное мне нужно было создать новую тему? так как вопрос с multipartformdata решён.
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721545
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tactical Nuclear Penguinпереводи в utf8

FileName_S := AnsiToUtf8(edit_path.Text + prefix.Text + inttostr(1)) + '.JPG' ;

...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721546
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovTech N9neНужно что-то делать с переменной, в которой находится путь, ведь там может быть не только
скриншот с русскими буквами, но и папка, в которой он хранится, тоже может иметь русские
буквы.

Если бы ты прочёл RFC, то знал бы, что имя папки ни в коем случае на сервер не передаётся.
Ну и что делать с русскими буквами в имени - тоже.

Я проверил, кинул картинку с именем sss.jpg в папку с русскими буквами..
получилось так - D:/ ВК /sss.jpg - фалй НЕ заливается на сервер вк.
если сделать так D:/ VK /sss.jpg - файл успешно грузится.
Может сама инди не может прочитать путь?
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721548
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9neМожет сама инди не может прочитать путь?судя по твоему скрину - да
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721564
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9neTactical Nuclear Penguinпереводи в utf8

FileName_S := AnsiToUtf8(edit_path.Text + prefix.Text + inttostr(1)) + '.JPG' ;



для D5 была такая функция

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
function EncodeUTF8(const Source: WideString): string;
var
 Index, SourceLength, CChar: Cardinal;
begin
 { Convert unicode to UTF-8 }
 Result := '';
 Index := 0;
 SourceLength := Length(Source);
 while Index < SourceLength do
 begin
   Inc(Index);
   CChar := Cardinal(Source[Index]);
   if CChar <= $7F then
     Result := Result + Source[Index]
   else if CChar > $7FF then
   begin
     Result := Result + Char($E0 or (CChar shr 12));
     Result := Result + Char($80 or ((CChar shr 6) and $3F));
     Result := Result + Char($80 or (CChar and $3F));
   end
   else
   begin
     Result := Result + Char($C0 or (CChar shr 6));
     Result := Result + Char($80 or (CChar and $3F));
   end;
 end;
end;



только передавай в нее widestring
...
Рейтинг: 0 / 0
VK API Загрузка фотографии в альбом
    #39721575
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tactical Nuclear Penguinдля D5 была такая функция
только передавай в нее widestring


делал так
Код: pascal
1.
2.
3.
var FileName_S:WideString;
 FileName_S :=  edit_path.Text + prefix.Text  + inttostr(1)  + '.JPG' ;
   FormData.AddFile('file1', EncodeUTF8(FileName_S)   , 'image/jpeg' );
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / VK API Загрузка фотографии в альбом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]