Minulla on seuraavanlainen ongelma: Kotisivuillani (tehty frontpagella) on muutama .net ohjelma joita jaan. Ohjelmat ovat ihan exenä. Kun tällaiseen viittaava yrittää klikata hiiren vasemmalla, yrittää ohjelma heti ruveta suoriutumaan. Tämä ei onnistu. Jotta käyttäjä voisi ladata ohjelmatiedoston, täytyy hänen ensin valita hiiren oikealla "Tallenna kohde nimellä" tai vastaavaa.
Kysymys: Miten saan linkin käyttäjille helppokäyttöisemmäksi, niin että myös vasemmalla klikattaessa aloitettaisiin latausprosessi (vastaava kuin tuo tallenna kohde nimellä) suorittamisen sijaan? En haluaisi ruveta tekemään zippejä tai itsepurkautuvia exejä. Joudunko kyhäämään jonkun "Download"-napin (jos joudun, miten?) Haluaisin elegantin ja käyttäjälle helpon ratkaisun. Tarvittaessa myös php-koodin kirjoitus on mahdollista. Eli jos ei ole muuta vaihtoehtoa, esim. jotain frontpage-kikkaa, niin ilmeisesti voisin tehdä sen download-napin jonka taakse laittaa php-koodia, joka aloittaa kyselyn minne tallennetaan ja sitten lähettää tiedoston. Jos näin, niin miten se tehdään? En ole php:llä ennen ohjelmoinut, mutta osaan tarvittaessa sellaista koodiini lisätä jos saan esimerkin. Niin ja jos haluatte käydä testaamassa tilannetta tosielämässä, osoite on: http://www.esakom.net/ohjelmia/ohjelmia.htm
Ei tuota voi mitenkään muuttaa. Käyttäjän pitää aina valita tuo tallenna, jos ei ole selaintaan pistänyt tallentamaan automaattisesti.
eikö edes jollain javascript kikalla? ongelma kai johtuu siitä että .net framework alusta yrittää suorittaa ohjelmaa serveriltä käsin. esim perinteisellä vc6:lla tehty exehän latautuu ensin johonkin explorerin temppihakemistoon ja suoriutuu sieltä.
esakom kirjoitti:
Kun tällaiseen viittaava yrittää klikata hiiren vasemmalla, yrittää ohjelma heti ruveta suoriutumaan.
Korjaa ihmeessä selaimes asetukset. Exejen itsestäänsuorittaminen linkkiä klikkaamalla on vaarallista.
Mullaki aukee heti klikatessa :O mite sais korjattua? Mistä asetuksesta?
EDIT: Sain korjattua
Javascript-kikoista en tiedä, mutta tuskin sellaisellakaan pystyy.
Ja kannattaa korjata ne selaimen asetukset.
EDIT: Meitsi kerkesi ensin :(
net-frameworkin security-osasto tuon ottaakin kiinni. luulisi että jotenkin onnistuu sellaisen napin teko että siitä käynnistyy lataus eikä suoritus (eikä haittaa vaikka kysyttäisiin käyttäjäljtä varmistus)
PHP:llä onnistuu ainakin redfile():llä ja sopivilla headereilla. En kyllä juuri nyt muista niitä headereita, mutta manuskasta nekin selviävät.
No sitähän minäkin että kyllä tämän on jotenkin onnistuttava. onnistui lopulta seuraavasti (löysin useita esimerkkejä netistä kun tarpeeksi surffasin)
<? $filename = $_GET['file']; // To prevent caching header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); // To tell the browser to download header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/save"); // To get a Save prompt and suggested filename header("Content-Disposition: attachment; filename=".basename($filename).";"); // To send in binary header("Content-Transfer-Encoding: binary"); header("Content-Length: ".filesize("$filename")); // Read the file already readfile("$filename"); exit(); ?>
Aihe on jo aika vanha, joten et voi enää vastata siihen.