Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: upload i cURL
Forum PHP.pl > Forum > PHP
bagsiur
ehh jak to mówią witki opadają sad.gif usiłuję napisać skrypt do uploadu plików na serwer, na inny serwer niż będzie stać stronka... dzięki google i i php manual wyskrobałem coś takiego: (patrz niżej)... z dokumentacji php wynika że wszystko powinno być git. Przepierzyłem google w z dłuż i w szerz i dalej skrypt nie działa, a próbowałem już wszystkiego.... Skrypt nie działa nawet w uproszczonej wersji uploadujacej plik przez serwer (moja maszyna) na cba.pl... na początek chce uzyskać jakikolwiek efekt, chce zobaczyć że ta metoda działa i chce w ten sposób przesłać cokolwiek... oto uproszczona wersja skryptu...

  1. <?php
  2. $link = 'http://www.grodziec.cba.pl';
  3. $aaa = 'Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.5) Gecko/2008121622 Ubuntu/8.10 (intrepid) Firefox/3.0.5';
  4.  
  5. $ch = curl_init('http://www.grodziec.cba.pl');
  6. curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
  7. curl_setopt($ch, CURLOPT_USERAGENT, $aaa);
  8. curl_setopt($ch, CURLOPT_URL, $link);
  9. curl_setopt($ch, CURLOPT_POST, 1);
  10. curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
  11. curl_exec($ch);
  12.  
  13.  
  14. $plik = '@' . dirname(__FILE__) . '/bbb.jpg';
  15. curl_setopt($ch, CURLOPT_POSTFIELDS, $plik);
  16. curl_setopt($ch, CURLOPT_POST, 1);
  17. echo curl_exec($ch);
  18. curl_close($ch);
  19. ?>
em1X
1) jakoś kiepsko szukałeś :/
http://forums.devshed.com/php-development-...ile-533233.html

tutaj twierdzą, że skrypt działa, śmiem twierdzić, że inaczej być nie może winksmiley.jpg

2) zwykle staram się nie czepiać, ale na widok "w z dłuż i w szerz" opadła mi kopara winksmiley.jpg może tak: wzdłuż i wszerz? smile.gif
bagsiur
problem rozwiązany, niema to jak manual do php biggrin.gif. Jak by komuś było przydatne to zamieszczam. (nie wiem czemu ale pierwszy skrypt nic nie wysyła):
  1. <?php
  2. $postFields['plik1'] = '@' . dirname(__FILE__) . '/coś.jpg';
  3. $ch = curl_init('http://www.stronka.pl');
  4. curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
  5. curl_exec($ch);
  6. curl_close($ch);
  7. ?>


teraz można spokojnie move_uploadedować_filesa z tablicy haha.gif Dzięki za odpowiedzi. pozdro smile.gif
ziqzaq
Wprawdzie problem jest już rozwiązany, ale odniosę się do pierwszego posta bo można się na tym przejechać (ja tak miałem).
W tym wypadku:
  1. <?php
  2. curl_setopt($ch, CURLOPT_POST, 1); // jesli to ustawiamy to ma byc _pierwsze_
  3. curl_setopt($ch, CURLOPT_POSTFIELDS, $plik); // dopiero pozniej pola post
  4. ?>

kolejności ustawiania opcji curla jest istotna (komentarz w manualu) winksmiley.jpg
Jak widać w twoim pierwszym poście - miałeś na odwrót i w ogóle nie wysyłało wartości post ($_POST i $_FILES były poprostu puste). Dodatkowo przekazywałeś w setopt ciąg znaków (samą ścieżkę do pliku) a ta opcja przyjmuje:
Cytat
This can either be passed as a urlencoded string like 'para1=val1&para2=val2&...' or as an array with the field name as key and field data as value.

Sprawdzane na php-5.2.8.
Pozdrawiam.
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.