Elikkäs, olen tehnyt pienen PHP scriptin sivulleni joka toimii aivan mainiosti, eli aina kun painaa 'Download' lisätään 'downloads.dat' tiedoston kerrointa. Ongelma on vain siinä, etten tiedä miten saisin vielä latauksen koodiin mukaan, eli kannattaako minun jotenkin vaikka laittaa jonkinlainen java-scripti mikä avaa pienen ikkunan missä lataus käynnistyy, vai olisiko jokin hyödyllinen php-koodi tälläiseen tilanteesen? PHP-scriptin lopussa on header pätkä mikä siis pitää sivun selaimessa samana, mutta pitäisi saada lataus vain vielä käynnistymään. Kiitos jo etukäteen!
php.net kirjoitti:
<?php
// We'll be outputting a PDF
header('Content-type: application/pdf');// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');// The PDF source is in original.pdf
readfile('original.pdf');
?>
Tuolla saat käyttäjän selaimelle menemään tiedoston, muutat vain omaan tarpeeseesi sopivaksi.
Tuo toimi hyvin, mutta miten saan sivun vielä päivittymään, kun muuten sivulla näkyy vanha määrä, vasta kun sivun päivittää näkee oikean määrän. Eli muuten toimii, paitsi sivulla pyörii vanha luku, jollei itse päivitä sivua :/
Darkstar kirjoitti:
Tuo toimi hyvin, mutta miten saan sivun vielä päivittymään, kun muuten sivulla näkyy vanha määrä, vasta kun sivun päivittää näkee oikean määrän. Eli muuten toimii, paitsi sivulla pyörii vanha luku, jollei itse päivitä sivua :/
No en näe tuota minkäänlaisena ongelmana. Enemmän minua häiritsee nettisivut, jotka yrittävät kaikin keinoin olla käyttäjää viisaanpia. Kaikki käyttäjät eivät käytä sivuja samalla tavalla, joten tuollaiset "linkin painalluksen jälkeen sivun päivittämiset" on jokseenkin turhia.
Ei tuollaisen latauksien lukumäärän kasvattaminen tarvitse tapahtua reaaliajassa.
edit:
Kokemuksen sananen vielä:
Tiedostojen latauksessa kannattaa huomioida serverin asetuksista käytettävän puskurin koko, sekä aika, jonka jälkeen serveri katkaisee käynnissä olevan scriptin.
Suurikokoisissa tiedostoissa täytyy olla tarkkana, jottei tiedosto ole suurempi kuin käytettävä puskuri. Php.netissä oli hyvä esimerkki miten tehdää tuollainen chunked-download scripti. Silloin taas tiedosto pitää saada ladattua 5 min (Apachen oletusaika, jonka jälkeen scripti katkaistaan) aikana.
Itse olen huomannut toimivaksi tavaksi siirtää suuret tiedosto väliaikais-kansioon, josta "mediapankki" poistaa tiedostoja, kun tiedostot ovat tarpeeksi vanhoja. Tällöin käyttäjän selain hoitaa lataamisen, eikä siis mikään php-scriptiä tarvitse jättää käyntiin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.