Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: cURL wysylanie pliku POSTEM
Forum PHP.pl > Forum > PHP
Safek
Witam

przeszukalem forum ale nie znalazlem informacji akurat na ten temat... moze ktos cos wie a moze to niemozliwe smile.gif

Zrobilem sobie takie proste 3 skrypciki:

cos_tam.php
1)
  1. <form enctype="multipart/form-data" method="post" name="wysylka" action='odbior.php'>
  2. <input type="file" name="pliczek">
  3. <input type="submit" value="zapisz" />
  4. </form>


odbior.php
2)
  1. <?php
  2. $pliczek = $_FILES['pliczek'];
  3. var_dump($_POST);
  4. var_dump($_FILES);
  5. var_dump($pliczek);
  6. copy($pliczek['tmp_name'],$pliczek['name']);
  7. ?>


i curl.php:
  1. $cookie = './cookie.txt';
  2. $useragent = 'Mozilla/5.0 (X11; U; Linux x86/64;en-US;rv:1.9.2.16) Gecko/20110323 Ubuntu/10.10 (maverick) Firefox/3.6.16';
  3. $url = 'http://localhost/upload/odbior.php';
  4.  
  5. $header = array();
  6.  
  7. $header[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
  8. $header[] = 'Accept-Language: pl,en-us;q=0.7,en;q=0.3';
  9. $header[] = 'Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7';
  10. $header[] = 'Keep-Alive: 115';
  11. $header[] = 'Connection: keep-alive';
  12. $header[] = 'Content-Type: application/x-www-form-urlencoded';
  13.  
  14. $query['pliczek'] = '@' . dirname(__FILE__) . '/plik.txt';
  15.  
  16. $ch = curl_init($url);
  17. curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true);
  18. curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
  19. curl_setopt( $ch, CURLOPT_POST, true);
  20. curl_setopt( $ch, CURLOPT_POSTFIELDS, $query);
  21.  
  22. $strona = curl_exec($ch);
  23. curl_close($ch);
  24.  
  25. echo $strona;


i teraz problem brzmi:

Plik jest przesylany w tablicy $_POST, a chcialbym aby znalazl sie w tablicy $_FILES bez modyfikowania pliku odbior.php smile.gif
da sie w ogole takie cos zrobic? google przetrzasniete, forum przetrzasniete, nic nie widac, nic nie slychac... a nie chce mi sie wierzyc zeby nie dalo sie imitowac formularza cURLem

Pozdrowka
Kefas
nospor
http://pl.php.net/manual/en/function.curl-setopt.php
Example #2 Uploading file
Wg. dokumentacji robisz chyba ok. Napewno podałeś poprawną ścieżkę?
Safek
sciezka jest ok, plik pobiera, tzn w tablicy POST jest. Skopiuj sobie te moje skrypty z forum i odpal, 3 min roboty, var_dump nawet masz do tych tablic i zobaczysz z ktorej Tobie wyswietli plik smile.gif Wlasnie nie wiem dlaczego jest w tablicy $_POST a nie $_FILES :/
nospor
Dokładnie takie skrypty masz? Bo widzę, wypełniasz tablicę $header, której nigdzie nie używasz.
Safek
pousuwalem zbedne opcje curla zeby nie zaciemniac, tam tylko ustawienia headerow sa, przegladarki i takie glupoty, nic szczegolnego tam nie ma smile.gif
nospor
No jesli wysyłasz taki header:
$header[] = 'Content-Type: application/x-www-form-urlencoded';
to nic dziwnego ze ci nie działa tongue.gif
Następnym więc razem nie usuwaj "nic szczegolnego" tylko pokazuj cały kod smile.gif
Safek
ok a to moze troche obok tematu smile.gif

jak mam takie cos w httpheaders:


-----------------------------46788979720230221312101997850
Content-Disposition: form-data; name="task"

IMPORT_FILE
-----------------------------46788979720230221312101997850
Content-Disposition: form-data; name="uploadedFile"; filename="xxxxxxx.xxx"
Content-Type: application/octet-stream

"tutaj,jest,jakis,content,pliku,tekstowego"

-----------------------------46788979720230221312101997850
Content-Disposition: form-data; name="fileFields"

uploadedFile
-----------------------------46788979720230221312101997850--

to cos oprocz pliku w tym poscie jest wysylane? jakis taks i fileFields jest ale nie widze zebybyly pod tym wartosci albo sie nie znam smile.gif
cycofiasz
Jak widać są wysyłane jeszcze 2 pola: task = IMPORT_FILE i fileFields = uploadedFile
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.