Elikkäs, mitenkä oikein PHP:llä voisi tehdä sellaisen toiminnon, että serveripuoli loisi data.txt -tiedoston ja syöttäisi sinne jotain tietoja tietokannasta? Sitten tämä data.txt pitäisi saada sivuston käyttäjälle ladattua.
Tarkoitus olisi hakea tietoja tietokannasta omalle koneelle sen takia, kun täytän data.txt:n tietojen perusteella erään wordin dokkarin kentät.
Tutkailin vähän asiaa googlella ja löysin fopen ja fwrite -komennot, mutta mitenkä tämä käyttäytyy jos sivustolla onkin monta käyttäjää yhtä aikaa? Sehän kirjoittaa samaan tiedostoon tietokannan tiedot ja data.txt sisältää sitten mitä sattuu. Jos taaskin loisin aina uuden tiedoston, joka sisältää tietokannan tiedot, niin sitten pitäisi serveriltä käydä aina tyhjentelemässä vähän väliä roskatiedostoja. Vai olenko ihan väärin käsittänyt nämä fopenit ja fwritet? :o
Saa kertoa muitakin ratkaisuja kun nämä fopen ja fwrite, nämä vaan itse satuin löytämään.
Miksi data pitää tallentaa tiedostoon. Siis miksei ihan normaali dynaaminen php-sivu kelpaa, jos kummiskin selaimen kautta sen lataat?
No tietysti se olisi vielä parempi jos koko roskan saisi sivuilla tehtyä ja sitten vain ladattaisiin valmis wordin dokkari. Tuli vain tälläinen aatos, että voi olla helpompi(?) näin. :)
Kyseessä on siis tälläinen määrämuotoinen dokumentti, joka pitäisi saada aina täytettyä tietokannan arvoilla.
Pystyykö php:llä jotenkin tekemään sitten sellaisen systeemin, että se ei tallenna palvelimelle tätä data.txt -tiedostoa, vaan se jotenkin lennosta vaan kyhäisi sen ja lähettäisi käyttäjälle? Käyttäjä sitten vain pistäisi että "Save as..." ja tallentaisi sen jonnekin.
https://www.ohjelmointiputka.net/keskustelu/
Tällä saanet selaimen heittämään tallennusikkunan.
<?php header("Content-type: application/rtf"); // tästä en mene takuuseen, löyty googlella myös text/richtext header("Content-Disposition: attachment; filename=myfile.rtf"); ?>
Täällä on vielä jotain jos ei noilla ohjeilla toimi.
Tuo RTF Generator tosiaan näyttää hyvältä. Entäpä, pystyykö sillä lisäämään jotenkin kuvia? Ei pistänyt itsellä silmään sellaista ominaisuutta.
Entäpä jos haluaisin tehdä tämän vielä niin, että serveri luo data.txt -tiedoston ja nakkaa ikkunan käyttäjälle, että mihinkä kansioon ladataan?
RTF Generaattorilla tuon sain tehtyä kun sehän oli valmis köntti. Jos vaikka ihan sellaisen esimerkin saisi missä luodaan data.txt ja sinne kirjoitetaan joku sana ja lopuksi nakattaisiin sivuston käyttäjälle data.txt, niin auttaisi kovasti.
Ilmeisesti se menisi jotenkin näin, kuten tsuriga vinkkasi:
<?php header("Content-type: application/txt"); header("Content-Disposition: attachment; filename=data.txt"); ?>
Eli tuo nakkaa käyttäjälle sen ilmoituksen missä kysytään minne data.txt -tiedosto ladataan, mutta missä se data.txt sitten luodaan? Onko se pakko fwritella luoda palvelimelle ja sitten erikseen poistaa? Eikö siinä tule vaaraksi se, että palvelimelle alkaa kertyä jotain kökkötiedostoja? Ja jos aina käytettäisiin samannimistä tiedostoa, niin se ei toimi jos kaksi käyttäjää käyttää sivustoa samanaikaisesti.
Katsoppa hoover auttaako nuo esimerkit:
http://www.kasetti.info/koodivinkit.php?kansio=3
Tuolta cv.php auttanee. Data siis tulostetaan PHP:n komennolla echo/print, ja tämän tulostuksen serveri sitten lähettää käyttäjälle ynnättynä siihen vielä nuo headerit, jotka kertovat käyttäjän selaimelle, millaista dataa on odotettavissa. Et siis tarvitse väliaikaistiedostoa. En nyt kyllä tiedä, miksi tahdot viedä käyttäjälle tekstitiedostoa; eikös tässä oltu word-dokkaria luomassa?
Joo. Sen Wordin sain jo tehtyä, mutta tälle konstille on kans käyttöä tulevaisuudessa. :)
Tuo kasetin linkki on juuri se mitä kaipailin, kiitti!
Aihe on jo aika vanha, joten et voi enää vastata siihen.