Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: API koodi kuvahostingille

Sivun loppuun

carter [10.02.2010 18:49:44]

#

Osaisiko joku neuvoa miten kannattaisi lähteä rakentamaan api systeemiä imagehostingilleni.

Itse image hostingin koodin olen tehnyt pelkästään php:lla

Kiitos neuvoista

Jokotai [10.02.2010 21:23:26]

#

Kertoisitko tarkemmin mitä haluat.

Short Php [11.02.2010 16:09:48]

#

http://www.piczasso.com/api.php:

Our API code allows you to add our image hosting service directly to your web-site.

Tuo sanoo melko paljon

carter [11.02.2010 16:23:04]

#

Jeps, eli tarkoitus olisi saada aikaan koodi, jonka avulla kuvia voisi uploudata suoraan muilta sivuilta piczassoon, ilman esim iframe hässäköitä

Esimerkiksi kuvahostaussivu imgur.com:lla on tällainen palvelu, ja sen avulla käyttäjät ovat muunmuassa voineet kehitellä työpöytäohjelmia jne.. joiden avulla he voivat hostata kuvansa imgur.com:ssa käymättä edes ko sivulla.

Tuossa lisää imgur.com:n api:sta: http://code.google.com/p/imgur-api/

Jokotai [11.02.2010 16:43:01]

#

Kuvan osoite otetaan syötteenä käyttäjältä. esim. https://www.ohjelmointiputka.net/pomppis.php?1102 antaisi tuon pomppis-kisan kuvan.

carter [11.02.2010 21:17:37]

#

Kiitos vastauksesta, mutta kyselin lähinnä, että miten käyttäjä voisi uploudata kuvan hostiin mikä on eri palvelimella kuin sivusto, jolla lomake on.

Esimerkiksi:
Käyttäjä on sivulla A, jossa on kuvanlähetyslomake -> hän käyttää lomaketta, ja uploudaa kuvan -> sivu A käyttää sivun B API koodia, jonka avulla se siirtää kuvan suoraan B:een -> sivun B koodi "vastaanottaa" kuvan, ja lähettää A:n koodille tiedot kuvasta -> sivu A tulostaa käyttäjälle tiedot (esim: kuvan osoitteen, joka olisi tässä tapauksessa jotain muotoa: http://sivu_B/kuva.jpg

Eli miten saisi nuo koodien yhteydet toisiin hoidettua. Onnistuukohan PHP:lla?

Toivottavasti en selittänyt liian vaikeasti. :)

Metabolix [11.02.2010 21:33:40]

#

Toiselle sivustolle (omasivu.dy.fi) laitetaan tällainen lomake:

<form action="http://kuvapalvelu.fi/upload.php" method="post" enctype="multipart/form-data">
  <input type="hidden" name="url_ok" value="http://omasivu.dy.fi/ladattu.php" />
  <input type="hidden" name="url_fail" value="http://omasivu.dy.fi/virhe.php" />
  <input type="file" name="image" />
</form>

Lomake siis lähtee aivan oikeasti suoraan kuvapalveluun. Latauksen jälkeen käyttäjä ohjataan upload.php-sivulta takaisin hidden-kentässä ilmoitetulle sivulle. Kuvan osoitteen (tai vastaavasti virheilmoituksen) voi välittää helposti GET-parametrina.

carter [11.02.2010 21:41:56]

#

ahaa, kumma kun en itse keksinyt tuota. kiitoksia :)

edit:

jostain syystä normaali lomake onnistuu lähettää ja saa palautuksenkin, mutta multipart dataa lähettäessä ei onnistu.

auttaisikohan curl hässäkkä. esim. jotain:

<?php
$ch = curl_init( "http://hostisivu" );
curl_setopt( $ch, CURLOPT_HEADER, 1 );
curl_setopt( $ch, CURLOPT_VERBOSE, 1 );

$values = array(
"field1"=>"value1-1\nvalue1-2",
"field2"=>"value2"
);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $values );

curl_exec( $ch );
curl_close( $ch );
?>

kokeilen..

Metabolix [11.02.2010 22:38:14]

#

Mitä muutoksia teit koodiin? Miten ongelma ilmenee ja millä tavalla yritit debugata sitä? Entä mitä selainta käytät? Minulla ainakin lähetys toimii aivan odotusten mukaan. Käytin suoraan tuota kirjoittamani koodia, tietysti vaihdoin oikeat osoitteet ja lisäsin submit-napin. Vastaavaa menetelmää käytetään myös esimerkiksi verkkopankkimaksuissa (kun siirrytään verkkokaupasta jonkin pankin sivuille maksamaan), joten eiköhän se ole toimivaksi osoitettu.

Kuluttaa turhaan kaistaa (ja aikaa), jos tiedosto kiertää ylimääräisen palvelimen kautta. Ei siis kannata sotkea CURLia tai vastaavia tähän.

carter [11.02.2010 23:32:36]

#

Noniin, nyt toimii ihan lomakkeella. Oli yksinkertainen huolimattomuusvirhe... :)

carter [12.02.2010 18:25:38]

#

Tuli tässä mieleen, että nuo tietojen palautus kannattaisi tehdä esimerkiksi niin että skripti lähettää ne XML tai JSON tietueina.

Eli haluaisitteko helppiä, miten tuollaiset tiedostot tehdään ja lähetetään referrer urliin php:lla. :)

Metabolix [12.02.2010 19:08:41]

#

Voit vaatia paluuosoitteen valmiiksi muodossa http://palvelin/sivu.php?vastaus= ja lisätä sitten vain perään oikein koodatun tekstin.

<?php
$url = "http://palvelin/sivu.php?vastaus=";
$vastaus = array("image" => "AbCxYz");
$url = $url.rawurlencode(json_encode($vastaus));
# $url = "http://palvelin/sivu.php?vastaus=%7B%22image%22%3A%22AbCxYz%22%7D";

Tämä on sikäli käytännöllisin tapa, että käyttäjä voi valita aivan mieleisensä osoitteen ja käyttää siinä lisäksi omia get-parametrejaan (esim. index.php?sivu=upload&vastaus=). Ja kuten näet, omakin toteutus on mukavan lyhyt. :)

Jos välttämättä haluat käyttää muuta tapaa, voit myös kikkailla funktioilla parse_url, parse_str, http_build_query ja http_build_url, mutta minusta tähän ei ole mitään aihetta.

carter [12.02.2010 19:46:22]

#

Jep, noin se on järkevintä. Thanks taas

JussiR [01.03.2010 13:26:01]

#

Vinkki näin ohimennen sivuston rakenteeseen liittyen; laita min-width footeriin.

carter [04.03.2010 22:23:18]

#

JussiR kirjoitti:

Vinkki näin ohimennen sivuston rakenteeseen liittyen; laita min-width footeriin.

Kiitos vinkistä, mutta miksi?

Joku perustelu olisi kiva :)

JussiR [05.03.2010 09:10:27]

#

carter kirjoitti:

JussiR kirjoitti:

Vinkki näin ohimennen sivuston rakenteeseen liittyen; laita min-width footeriin.

Kiitos vinkistä, mutta miksi?

Joku perustelu olisi kiva :)

Kokeile pienentää ikkunan leveyttä.

carter [06.03.2010 16:00:49]

#

Totta, hyvä kun huomasit. korjattu


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta