• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Как Из Url Img Получить Формат Multipart/form-data

  • Автор темы Автор темы Polya
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Polya

Принятый Кодер
Регистрация
8 Июн 2016
Сообщения
47
Баллы
50
Здравствуйте. Здравствуйте. Помогите пожалуйста с загрузкой файлов на сервер
https://vk.com/dev/upload_files?f=1. Загрузка фотографий в альбом
Я хочу загрузить фотографии в альбом сообщества вк, все делаю как описано в статье выше(ссылка)
Единственное что я не понимаю как получить формат multipart/form-data
За ранее спасибо)*
 
Здравствуйте. Здравствуйте. Помогите пожалуйста с загрузкой файлов на сервер
https://vk.com/dev/upload_files?f=1. Загрузка фотографий в альбом
Я хочу загрузить фотографии в альбом сообщества вк, все делаю как описано в статье выше(ссылка)
Единственное что я не понимаю как получить формат multipart/form-data
За ранее спасибо)*
Код:
http:=TIdHTTP.Create;
stream:=TIdMultiPartFormDataStream.Create;
http.Request.ContentType:='multipart/form-data';//преобразует в бинарный код
stream.AddFile('file', 'e:\sampl.xml', 'multipart/form-data');
Http.post(SERV_URL, stream);
stream.free;
http.free;

Или же попробуй использавать уже готовую функцию,нарыл их у себя на компе,еще 2015 года
Код:
function HttpPostFileForm(const URL, FieldName, FileName: string; const Data: TStream; const FormFields:TStrings; const ResultData:
TStrings): Boolean;
var
  HTTP: THTTPSend;
  Bound, s: AnsiString;//был string, но для России не катит ( ! )
  i:integer;
const
  CRLF=#13#10;
  FIELD_MASK = CRLF + '--%s' + CRLF +'Content-Disposition: form-data; name="%s"' + CRLF + CRLF+'%s';
begin
  Bound := IntToHex(Random(MaxInt), 8) + '_Synapse_boundary';
  HTTP := THTTPSend.Create;
  try
    s := '--' + Bound + CRLF;
    s := s + 'content-disposition: form-data; name="' + FieldName +'";';
    s := s + ' filename="' + FileName +'"' + CRLF;
    s := s + 'Content-Type: Application/octet-string' + CRLF + CRLF;
    HTTP.Document.Write(Pointer(s)^, Length(s));
    HTTP.Document.CopyFrom(Data, 0);
    // Include formfield
    for i:=0 to FormFields.Count-1 do
      begin
        S:= Format(FIELD_MASK,[Bound, FormFields.Names[I],FormFields.Values[FormFields.Names[I]]]);
        HTTP.Document.Write(Pointer(S)^, Length(S));
      end;
    s := CRLF + '--' + Bound + '--' + CRLF;
    HTTP.Document.Write(Pointer(s)^, Length(s));
    HTTP.MimeType := 'multipart/form-data, boundary=' + Bound;
    Result := HTTP.HTTPMethod('POST', URL);
    ResultData.LoadFromStream(HTTP.Document);
  finally
    HTTP.Free;
  end;
end;
А вот пример как использавать
[LIKES=5]
Код:
procedure TForm1.Button1Click(Sender: TObject);
var Data:TFileStream;
 FormFields:TStrings;
 FileName:String;
begin
 FileName:='/home/theo/test.zip';

 Data:=TFileStream.Create(FileName, fmOpenRead);

 FormFields:=TStringList.Create;
 FormFields.Add('Feld2=testen');
 FormFields.Add('Feld3=sie mit');

 HttpPostFileForm('http://localhost/theohome/php/listpost.php',
  'Feld1',
  ExtractFileName(FileName),
  Data,
  FormFields,
  Memo1.lines);

 Data.Free;
 FormFields.free;
end;
[/LIKES] За интересный вопрос дам лайк.
 
Код:
http:=TIdHTTP.Create;
stream:=TIdMultiPartFormDataStream.Create;
http.Request.ContentType:='multipart/form-data';//преобразует в бинарный код
stream.AddFile('file', 'e:\sampl.xml', 'multipart/form-data');
Http.post(SERV_URL, stream);
stream.free;
http.free;

Или же попробуй использавать уже готовую функцию,нарыл их у себя на компе,еще 2015 года
Код:
function HttpPostFileForm(const URL, FieldName, FileName: string; const Data: TStream; const FormFields:TStrings; const ResultData:
TStrings): Boolean;
var
  HTTP: THTTPSend;
  Bound, s: AnsiString;//был string, но для России не катит ( ! )
  i:integer;
const
  CRLF=#13#10;
  FIELD_MASK = CRLF + '--%s' + CRLF +'Content-Disposition: form-data; name="%s"' + CRLF + CRLF+'%s';
begin
  Bound := IntToHex(Random(MaxInt), 8) + '_Synapse_boundary';
  HTTP := THTTPSend.Create;
  try
    s := '--' + Bound + CRLF;
    s := s + 'content-disposition: form-data; name="' + FieldName +'";';
    s := s + ' filename="' + FileName +'"' + CRLF;
    s := s + 'Content-Type: Application/octet-string' + CRLF + CRLF;
    HTTP.Document.Write(Pointer(s)^, Length(s));
    HTTP.Document.CopyFrom(Data, 0);
    // Include formfield
    for i:=0 to FormFields.Count-1 do
      begin
        S:= Format(FIELD_MASK,[Bound, FormFields.Names[I],FormFields.Values[FormFields.Names[I]]]);
        HTTP.Document.Write(Pointer(S)^, Length(S));
      end;
    s := CRLF + '--' + Bound + '--' + CRLF;
    HTTP.Document.Write(Pointer(s)^, Length(s));
    HTTP.MimeType := 'multipart/form-data, boundary=' + Bound;
    Result := HTTP.HTTPMethod('POST', URL);
    ResultData.LoadFromStream(HTTP.Document);
  finally
    HTTP.Free;
  end;
end;
А вот пример как использавать
За интересный вопрос дам лайк.
Спасибо)
 
Статус
Закрыто для дальнейших ответов.
Вверх Снизу