Osaisiko joku neuvoa miten kannattaisi lähteä rakentamaan api systeemiä imagehostingilleni.
Itse image hostingin koodin olen tehnyt pelkästään php:lla
Kiitos neuvoista
Kertoisitko tarkemmin mitä haluat.
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
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/
Kuvan osoite otetaan syötteenä käyttäjältä. esim. https://www.ohjelmointiputka.net/pomppis.php?
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. :)
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.
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..
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.
Noniin, nyt toimii ihan lomakkeella. Oli yksinkertainen huolimattomuusvirhe... :)
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. :)
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.
Jep, noin se on järkevintä. Thanks taas
Vinkki näin ohimennen sivuston rakenteeseen liittyen; laita min-width footeriin.
JussiR kirjoitti:
Vinkki näin ohimennen sivuston rakenteeseen liittyen; laita min-width footeriin.
Kiitos vinkistä, mutta miksi?
Joku perustelu olisi kiva :)
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ä.
Totta, hyvä kun huomasit. korjattu
Aihe on jo aika vanha, joten et voi enää vastata siihen.