Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: WebApi soapProblem z uploadem zdjęcia podczas dodawania aukcji
Forum PHP.pl > Forum > PHP
bolter94
Witam,
Mam problem z dodawaniem zdjecia do aukci w webapi allegro, aukcja bez zdjecia przechodzi be problemu jednak kiedy chce dodac zdjecie do fid=16 wystepuje "blad podczas konwersji zdjecia" probowalem roznych sposobow, file_get_contest(), kodowanie do base64 nic nie dziala (soap w wyzszych wersiaj podobno automatycznie koduje do base64) obrazek ma prawidlowa sciezke bo moge wyswietlic jego kod kodujac go.

Znalazlem rozwiazania ale z przed 2010r, a teraz jest nowy wsdl i nie moge znalezc rozwiazania. O ironio nawet w ubogiej dokumentacji metody I jej przykładzie pominięte zostalo dodawanie zdjęcia.

Prosiłbym o jakiś przykład, bo google już nie wystarcza :/
kapslokk
Obrazek powinien być zakodowany w base64, nowy wsdl w stosunku do starego rozni sie tylko strukturą tablicy, którą się wysyła z tego co pamietam.
Pokaż swój kod.
bolter94
Podobno soap koduje automatycznie do base64, czy tak nie jest? Kod podesle za +/- 50min.

w klasie:

  1. $empty = new stdClass();
  2. $empty->{'fvalueString'} = '';
  3. $empty->{'fvalueInt'} = 0;
  4. $empty->{'fvalueFloat'} = 0;
  5. $empty->{'fvalueImage'} = ' ';
  6. $empty->{'fvalueDatetime'} = 0;
  7. $empty->{'fvalueBoolean'} = false;
  8.  
  9. $form = array();
  10.  
  11. ...
  12.  
  13. $field = clone $empty;
  14. $field->{'fid'} = 16;
  15. $empty->{'fvalueImage'} = $image;
  16. $form[] = $field;
  17.  
  18. ...
  19.  
  20. $request = array(
  21. 'sessionHandle' => $this->session->sessionHandlePart,
  22. 'fields' => $form,
  23. 'localId' => $data['id']
  24. );
  25.  
  26.  
  27. try {
  28. $myWonItems = $this->soapClient->doNewAuctionExt($request);
  29. } catch (SoapFault $fault) {
  30. print($fault->faultstring);
  31. }
  32.  
  33.  
  34.  
  35.  


w kontrolerze:

  1. $image=file_get_contents("files/min/min1.jpg");


i image przekazuje jako parametr do klasy/metody /\

komunikat błędu: "Wyniknęły problemy podczas konwersji zdjęć."
kapslokk
Cytat
Podobno soap koduje automatycznie do base64, czy tak nie jest?

Nigdy o tym nie słyszałem, ale nie wiem, może masz rację, tak czy inaczej spróbuj:
  1. $image='data:image/jpeg;base64,' . base64_encode(file_get_contents("files/min/min1.jpg"));

albo:
  1. $image=base64_encode(file_get_contents("files/min/min1.jpg"));


bolter94
Niestety ani jedna ani druga opcja nie działa :/

W czym może być problem?
Pyton_000
Wg. tego co piszą tu: http://wrzasq.pl/blog/allegro-webapi-tutorial-vol-2.html problem może być w wielkości obrazka.
bolter94
Wziąłem to pod uwagę, przetestowalem nawet metod tam wykorzyatana. Niestety obrazek nie przechodzi.
kapslokk
Jak możesz to wrzuć gdzieś obrazek, który chcesz wrzucić na aukcje i udostepnij link.
bolter94
Myślę, że to nie po stronie obrazka leży problem. Próbowałem wiele obrazków zarówno z dysku jak i bezpośrednie linki do obrazka z randomowej strony (oczywiście wybierałem te małe by nie przekroczyć max. rozmiaru) nic nie zadziałało.

Nie wiem co dalej internet na temat webapi zamiera po 2010r. Zero przykładów dla nowego wsdla. Może sposób przekazywania zdjęć się niie zmienił, ale niestety stare metody u mnie nic nie pomogły.

Pyton_000
Pokaż jeszcze tworzenie obiektu SoapClient
emstawicki
Z innej beczki... czy pilnujesz aby kodowanie danych wejściowych i wyjściowych było zgodne z założeniami WebApi?
Przy base64Binary ma to ogromne znacznie.
kapslokk
Zrobiłem na szybko skrypt, który u mnie działa i wystawia aukcje - przynajmniej na sandboxie wink.gif Więcej tutaj:
https://github.com/kapslokk/allegro-webapi-example/
bolter94
10/10 działa wyśmienicie.. Wielkie dzięki!! muszę teraz znaleźć przyczynę niepowodzeń wink.gif

kluczem okazalo się to biggrin.gif :

  1. $array = array(
  2. 'fid' => $id,
  3. 'fvalueString' => "",
  4. 'fvalueInt' => 0,
  5. 'fvalueFloat' => 0,
  6. 'fvalueImage' => 0,
  7. 'fvalueDateTime' => 0,
  8. 'fvalueDate' => 0,
  9. 'fvalueRangeInt' => array(
  10. 'fvalueRangeIntMin' => 0,
  11. 'fvalueRangeIntMax' => 0,
  12. ),
  13. 'fvalueRangeFloat' => array(
  14. 'fvalueRangeFloatMin' => 0,
  15. 'fvalueRangeFloatMax' => 0,
  16. ),
  17. 'fvalueRangeDate' => array(
  18. 'fvalueRangeDateMin' => 0,
  19. 'fvalueRangeDateMax' => 0,
  20. ),
  21. );
Pyton_000
Czyli nie poprawna struktura pola?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.