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

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

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

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

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

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


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

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

Прочитать соответствующий RFC на MIME не предлагать?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.10.2018, 00:57
    #39721184
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VK API Загрузка фотографии в альбом
...
Рейтинг: 0 / 0
23.10.2018, 01:08
    #39721185
Tech N9ne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VK API Загрузка фотографии в альбом
Ребята, делаю так.
Код: 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
23.10.2018, 01:28
    #39721189
Tech N9ne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VK API Загрузка фотографии в альбом
photos_list параметр, возвращаемый в результате загрузки фотографий на сервер.
строка

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

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

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

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

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

пырвые же ссылки
...
Рейтинг: 0 / 0
23.10.2018, 16:30
    #39721539
Tech N9ne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VK API Загрузка фотографии в альбом
Код: 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
23.10.2018, 16:32
    #39721540
Tactical Nuclear Penguin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VK API Загрузка фотографии в альбом
переводи в utf8
...
Рейтинг: 0 / 0
23.10.2018, 16:34
    #39721542
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VK API Загрузка фотографии в альбом
Tech N9neНужно что-то делать с переменной, в которой находится путь, ведь там может быть не только
скриншот с русскими буквами, но и папка, в которой он хранится, тоже может иметь русские
буквы.

Если бы ты прочёл RFC, то знал бы, что имя папки ни в коем случае на сервер не передаётся.
Ну и что делать с русскими буквами в имени - тоже.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.10.2018, 16:35
    #39721543
Tech N9ne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VK API Загрузка фотографии в альбом
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
23.10.2018, 16:39
    #39721545
Tech N9ne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VK API Загрузка фотографии в альбом
Tactical Nuclear Penguinпереводи в utf8

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

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

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

Я проверил, кинул картинку с именем sss.jpg в папку с русскими буквами..
получилось так - D:/ ВК /sss.jpg - фалй НЕ заливается на сервер вк.
если сделать так D:/ VK /sss.jpg - файл успешно грузится.
Может сама инди не может прочитать путь?
...
Рейтинг: 0 / 0
23.10.2018, 16:46
    #39721548
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VK API Загрузка фотографии в альбом
Tech N9neМожет сама инди не может прочитать путь?судя по твоему скрину - да
...
Рейтинг: 0 / 0
23.10.2018, 17:02
    #39721564
Tactical Nuclear Penguin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VK API Загрузка фотографии в альбом
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
23.10.2018, 17:18
    #39721575
Tech N9ne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VK API Загрузка фотографии в альбом
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
Форумы / Delphi [игнор отключен] [закрыт для гостей] / VK API Загрузка фотографии в альбом / 25 сообщений из 30, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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