web servis base64 binary to Zip File

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
3ddark
Üye
Mesajlar: 89
Kayıt: 14 Eyl 2010 10:55
Konum: İstanbul

web servis base64 binary to Zip File

Mesaj gönderen 3ddark »

Web servis ile çektiğim datayı zipli dosya olarak kayıt etmek istiyorum. servis sonucunda aşağıdaki veri tipi geliyor.

Kod: Tümünü seç

Response parametreleri
	binaryData    string	ZIP formatında sıkıştırılmış, Base64 encode edilmiş binary veri.
	fileName      String	Dosya adı
	hash                   MD5 formatında dosya özet değeri

Kod: Tümünü seç

  servis := GetIPostBoxService();

  m_login           := Login.Create;
  m_login_type2     := LoginType2.Create;
  m_getUserList     := getUserList.Create;
  try
    m_login_type2.appStr   := EditappStr.Text;
    m_login_type2.userName := EdituserName.Text;
    m_login_type2.passWord := EditpassWord.Text;
    m_login_type2.version  := Editversion.Text;

    m_login.login := m_login_type2;
    m_login_response := servis.Login(m_login);

    sessionID := m_login_response.sessionID;

    m_getUserList.login     := m_login.login;
    m_getUserList.listType  := UserListType.GBLIST;

    m_userListResponse      := servis.getUserList(m_getUserList);

//    strData := EncodeBase64(m_userListResponse.getUserListResult.binaryData.Value,
//                            Length(m_userListResponse.getUserListResult.binaryData.Value) );

//    Memo1.Clear;
//    Memo1.Lines.Text := strData;
  finally
    m_login_type2.Free;
value TByteDynArray tipinden bilgi. Bu gelen bilgi içinde data var dosya adı var fakat base64 kısmında forumda araştırdım ama başarılı olamadım.
PostgreSQL - Delphi - Linux :!:
3ddark
Üye
Mesajlar: 89
Kayıt: 14 Eyl 2010 10:55
Konum: İstanbul

Re: web servis base64 binary to Zip File

Mesaj gönderen 3ddark »

Uzun denemeler sonucu sorunu çözdüm. Çözüm bu kodu burada. Gelen dosyayı zip olarak kayıt ediyor.

Kod: Tümünü seç

    stream := TMemoryStream.Create;
    try
      if Length(m_userListResponse.getUserListResult.binaryData.Value) > 0 then
      begin
        stream.WriteBuffer(m_userListResponse.getUserListResult.binaryData.Value[0],
                Length(m_userListResponse.getUserListResult.binaryData.Value));

        stream.SaveToFile(ExtractFilePath(Application.ExeName) + '\' +
                          m_userListResponse.getUserListResult.fileName);
      end;
    finally
      stream.Free;
    end;
PostgreSQL - Delphi - Linux :!:
Cevapla