Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP kuvan upload ongelma

Tumppu [19.12.2009 13:37:53]

#

Hei!

Kokeilin kyseistä https://www.ohjelmointiputka.net/koodivinkit/24229-php-multi-upload ohjelmaa ja sain sen moitteettomasti toimimaan. Nyt ongelmani on saada lähetettyä kuva tietokoneelta palvelimelle tyyliin;
"http://www.kotisivuni.fi/lahetys.php?tiedosto=C:\kuva.jpg"

olen kokeillut jo vähän kaikenlaista, mutta en ole saanut onnistumaan. Muutamia vuosia takaperin PHP oli tutumpi, mutta nyt on vähän taidot ruostuneet, löytyykö täältä apua?

Metabolix [19.12.2009 13:41:37]

#

Ei ole mahdollista. PHP:llä ei ole minkäänlaista pääsyä käyttäjän koneelle. Ainoa tapa tiedoston siirtoon on lähettää tiedoston sisältö selaimella. Käytännössä tämä tapahtuu aina käyttäjän toimesta tai suostumuksella, helpoiten file-tyyppisellä input-elementillä (kuten koodivinkissä).

Tumppu [19.12.2009 13:45:27]

#

kiitoksia vastauksesta! Täytynee pähkäillä seuraavaa ratkaisua.

Juhis [21.12.2009 12:27:54]

#

Tiedostojen tallennuksen perusteet.

Sinulla on form, jossa on tagi enctype="multipart/form-data".
Formissa on input kenttä jonka tyyppi on file.

<input type="file" name="tiedosto" />

Tällä siis saat selattua koneeltasi tiedostoja.

Formin submitoimisen jälkeen se lähettää haluamasi tiedoston palvelimelle.
Mikäli haluat lähettää useampia tiedostoja kerralla, tee tuosta file inputin nimestä array näin

<input type="file" name="tiedosto[]" />

Toista tuo ylläoleva rivi niin monta kertaa kuin haluat että käyttäjä voi lisätä kuvia yhdellä submitoimisella.

Tiedostoja ET voi kopioida käyttäjän koneelta käyttäen urliin syötettyä parametria, mutta mikäli palveluntarjoajasi ei ole php:stä (tai muusta kielestä) estänyt netistä kuvien lataamisen, niin esim php:llä file_get_contents(kuvan_osoite); komennolla voit ladata netistä.

Muistathan että get-parametreiksi annetut osoitteet pitää aina parsia esim urlencode() funktion läpi ja avata urldecode() funktiolla ennen kuin lataat tiedoston skriptilläsi.

Tumppu [24.12.2009 01:58:38]

#

Joo. Sain ratkaistua ongelmani ftp:n avulla. Tein VB:llä ohjelman joka käyttää ftp:tä ja lähettää sitäkautta tiedostot nettisivuilleni talteen. Hoksasin itsekkin vähän myöhemmin, että olisi aika vaarallista jos PHP:llä pystyisi luomaan kyseisen toiminnon.

Vastaus

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

Tietoa sivustosta