[ Príspevkov: 3 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 20.09.24
Príspevky: 1188
Témy: 198 | 198

Ahojte,
mam v premennej ulozene binarne data obrazku a potrebujem pomocou php vytvorit http request na server pomocou jeho jeho api, pricom budem posielat ten obrazok. Content-type musi byt multipart/form-data . Cize potrebujem v podstate v phpcku vytvorit request asi taky, aky vytvori prehliadac ked potvrdim form s atributom enctype="multipart/form-data".
Viete niekto, ako na to ? Dik


_________________
CPU: Intel core i5 3470 GPU: Gigabyte N760OC-2GD MB: MSI B75A-G43 RAM: DDRAM3 8GB (2x4GB) TEAM RAM 1600MHz Elite Zdroj: Seasonic G Series 450W HDD: 500GB vybraty z notebooku Lenovo E531 i5-3230M N4IBPXS SSD:Samsung 840 Evo 250GB Case: Fractal Define R4 black pearl FAN: Cooler Master Hyper 212+ EVO DVD: SAMSUNG DVD±R/±RW/RAM SH-224DB SATA, černá, bulk OS: Ubuntu 12.04 64bit & Windows 7 Ultimate 64bit Monitor: Dell U2412m
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 20.09.24
Príspevky: 1188
Témy: 198 | 198
Napísal autor témyOffline : 25.07.2013 15:18 | Zaslanie binarnych dat ako multipart/form-data request

Toto som zatial vyskusal podla toho, co som vycital z dokumentacie. Myslel som si, ze mi bude treba binarne data ale teraz poskytujem ten obrazok ako resource:
Kód:
$url = 'tu_mam_web_api_url';
$input = fopen('delfin.jpg','r');       
$header = array('Content-Type: multipart/form-data');
$resource = curl_init();
curl_setopt($resource, CURLOPT_URL, $url);
curl_setopt($resource, CURLOPT_USERPWD, "meno:heslo");
curl_setopt($resource, CURLOPT_HTTPAUTH, CURLAUTH_ANYSAFE);
curl_setopt($resource, CURLOPT_HTTPHEADER, $header);
curl_setopt($resource, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($resource, CURLOPT_BINARYTRANSFER, true );
curl_setopt($resource, CURLOPT_INFILESIZE, 61631);
curl_setopt($resource, CURLOPT_INFILE, $input);
$result = curl_exec($resource);
curl_close($resource);
var_dump($result);

Ja este neviem ako presne ma vobec vyzerat odpoved zo servera, no zatial mi to hadze len http status 405, chyba: The specified HTTP method is not allowed for the requested resource ().
zrejme musim ten obrazok posielat nejak inak. Ako som napisal, potrebujem asi taky request, ako ked prehliadac odosiela ten obrazok z formu s atributom enctype="multipart/form-data". Ja tym requestom prilis dobre nerozumiem.


_________________
CPU: Intel core i5 3470 GPU: Gigabyte N760OC-2GD MB: MSI B75A-G43 RAM: DDRAM3 8GB (2x4GB) TEAM RAM 1600MHz Elite Zdroj: Seasonic G Series 450W HDD: 500GB vybraty z notebooku Lenovo E531 i5-3230M N4IBPXS SSD:Samsung 840 Evo 250GB Case: Fractal Define R4 black pearl FAN: Cooler Master Hyper 212+ EVO DVD: SAMSUNG DVD±R/±RW/RAM SH-224DB SATA, černá, bulk OS: Ubuntu 12.04 64bit & Windows 7 Ultimate 64bit Monitor: Dell U2412m
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 20.09.24
Príspevky: 1188
Témy: 198 | 198
Napísal autor témyOffline : 26.07.2013 10:38 | Zaslanie binarnych dat ako multipart/form-data request

Mam to vyriesene. Ak chcete poslat post request s typom multipart/form-data s obrazkom v poli files:
Kód:
    $url = "cesta_k_serveru";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_VERBOSE, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_USERPWD, "meno:heslo");
    curl_setopt($ch, CURLOPT_POST, true);
    $post = array(
        "uploadedFile"=>"@/cesta/k/suboru/delfin.jpg;type=image/jpeg",
    );
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    $result = curl_exec($ch);
    curl_close ($ch);


Ak post request s typom multipart/form-data s obrazkom v poli post ako binarne data (nie som si isty, ci je toto spravne):
Kód:
$localFile = 'delfin.jpg';
$ch = curl_init();
$fp = fopen($localFile, 'r');
$url = "cesta_k_serveru";
curl_setopt($ch, CURLOPT_USERPWD, "meno:heslo");
curl_setopt($ch, CURLOPT_URL, $url);
$data = 'POST tu_cesta_na_serveri HTTP/1.0
Host: nieco.com
Content-type: multipart/form-data, boundary=AaB03x
Content-Length: '.filesize($localFile).'

--AaB03x
content-disposition: form-data; name="delfin.jpg"; filename="delfin.jpg"
Content-Type: image/jpeg
Content-Transfer-Encoding: binary

'.file_get_contents('delfin.jpg').'
--AaB03x--';
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($ch);
curl_close($ch);


Ak put request:
Kód:
$url = "cesta_k_serveru";
$localFile = 'delfin.jpg';
$fp = fopen($localFile, 'r');
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERPWD, "meno:heslo");
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: multipart/form-data"));
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 86400);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_BUFFERSIZE, 128);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localFile));
$result = curl_exec($ch);
curl_close ($ch);


_________________
CPU: Intel core i5 3470 GPU: Gigabyte N760OC-2GD MB: MSI B75A-G43 RAM: DDRAM3 8GB (2x4GB) TEAM RAM 1600MHz Elite Zdroj: Seasonic G Series 450W HDD: 500GB vybraty z notebooku Lenovo E531 i5-3230M N4IBPXS SSD:Samsung 840 Evo 250GB Case: Fractal Define R4 black pearl FAN: Cooler Master Hyper 212+ EVO DVD: SAMSUNG DVD±R/±RW/RAM SH-224DB SATA, černá, bulk OS: Ubuntu 12.04 64bit & Windows 7 Ultimate 64bit Monitor: Dell U2412m
 [ Príspevkov: 3 ] 


Zaslanie binarnych dat ako multipart/form-data request



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

PHP - HTTP autentifikacia, zaslanie dat na server

v PHP, ASP

8

822

30.07.2009 2:35

euthanan

V tomto fóre nie sú ďalšie neprečítané témy.

Chcem dať môj JS projekt na github, ako tam dať obrázky?

v Ostatné

10

1200

27.03.2014 21:56

Kamahl

V tomto fóre nie sú ďalšie neprečítané témy.

Pascal - sucet 2 kladnych binarnych cisel

v Assembler, C, C++, Pascal, Java

0

757

15.04.2010 21:51

arzenop

V tomto fóre nie sú ďalšie neprečítané témy.

Zaslanie veľkého súboru

v Ostatné programy

6

916

15.10.2008 23:41

liveman

V tomto fóre nie sú ďalšie neprečítané témy.

Request a ASP.net

v Technológia .NET

4

1714

29.06.2008 9:41

Ded'leg

V tomto fóre nie sú ďalšie neprečítané témy.

vlozenie riadku +request id

v Databázy

14

1014

07.10.2009 13:35

pilná lama glama

V tomto fóre nie sú ďalšie neprečítané témy.

ubuntu - X Error of failed request

v Operačné systémy Unix a Linux

1

613

16.12.2008 23:30

Igor

V tomto fóre nie sú ďalšie neprečítané témy.

Request time out (čas vypršal) Problem

v Sieťové a internetové programy

0

449

11.01.2012 14:58

Dafid

V tomto fóre nie sú ďalšie neprečítané témy.

ako dat heslo

v Ostatné programy

8

1598

20.12.2009 11:26

shiro

V tomto fóre nie sú ďalšie neprečítané témy.

ako dat dole

v HTML, XHTML, XML, CSS

22

1224

09.07.2007 18:43

Flety

V tomto fóre nie sú ďalšie neprečítané témy.

ako dať styl

v PHP, ASP

6

676

09.07.2007 19:49

kmsa

V tomto fóre nie sú ďalšie neprečítané témy.

ako dat novy bios

v Intel čipové sady

4

3756

01.03.2007 16:54

Jaro

V tomto fóre nie sú ďalšie neprečítané témy.

ako mam dať zdroj?

v PC skrinky a zdroje

9

906

03.07.2014 15:01

KocuR

V tomto fóre nie sú ďalšie neprečítané témy.

Facebook graph-api request, ktory nevracia JSON objekt

v Android, iOS, Windows Phone (Mobile)

6

772

20.09.2014 14:34

incredible

V tomto fóre nie sú ďalšie neprečítané témy.

ako dat mapy do GPS

v Mobilné zariadenia

0

878

02.12.2007 12:53

fuco

V tomto fóre nie sú ďalšie neprečítané témy.

Ako dat pismo od obrazkov

v HTML, XHTML, XML, CSS

3

537

18.02.2010 0:58

Atrix24



© 2005 - 2025 PCforum, edited by JanoF