PDA

Volledige versie bekijken : download knop


gagi
%Europe/Berlin %363 %2008, 09:43
Hoi allemaal,

Ik heb sommige bestanden die via een download knop "gedownload" moeten worden.
Het idee is dat als je op de knop klikt dat je eerst een venster van de browser krijgt met de vragen zoals "open met..." en "opslaan als" ...
Na dat je hebt gekozen ga je dat bepaalde bestand downloaden.

Mijn vraag is hoe mak ik dat link voor mijn knop. Dus link dat opent dat scherm voor downloaden.
Hier kon ik niet vinden. Wel wat gehoord voor download css of iets dergelijks.
Maar hoe zit de script eruit?

Bedankt,
Gagi

MazMellow
%Europe/Berlin %365 %2008, 09:47
Dat is, voor zover ik weet, een php scriptje.
http://www.phphulp.nl/php/scripts/1/742/
Bijvoorbeeld.

gagi
%Europe/Berlin %408 %2008, 10:48
Ja, sorry maar waar moet ik deze php script zetten?
Ik neem aan onder de download knop maar hoe?
Als ik alleen deze script gebruik dan gaat dat niet werken. Wat moet ik nog daarvoor hebben?

MazMellow
%Europe/Berlin %414 %2008, 10:56
Als je bijv een plaatje hebt wat ze niet direct moeten zien maar moeten downloaden doe je zo:
download.php?bestand=plaatje.jpg

plaatje.jpg staat dan in dezelfde map als download.php
Dit kan je gewoon via getURL doen.

minke1990
%Europe/Berlin %451 %2008, 11:49
Ik ben toevallig met het zelfde bezig. Ik krijg enkel deze melding wanneer ik hem op internet test: No input file specified.
(alles staat wel in de map flashtest)

<?php
$dir = 'flashtest/'; //geef een map aan met eindslash (. voor deze map)

if(isset($_GET['bestand'])) //als ?bestand= bestaat
{
if(eregi('../', $_GET['bestand']) == FALSE) //als er geen ../ in de bestandsnaam voorkomt, dus geen upmap wordt aangevraagd
{
if(file_exists($dir.$_GET['bestand'])) //en ?bestand=.. is ook nog eens een bestaand bestand is
{
header('Content-type: Application/octet-stream'); //zet de header dat het bestand gedownload moet worden
//en dat het dus niet in de browser afgespeeld kan worden

header('Content-Disposition: attachment; filename='.$_GET['bestand']); //geef aan welk bestand gedownload moet worden
readfile($dir.$_GET['bestand']); //en open vervolgens dat bestand
}
else //als het bestand niet bestaat
{
echo 'bestand bestaat niet'; //echo dat
}
}
else //als er wel ../ in de bestandsnaam voorkomt
{
echo 'Deze map is niet toegankelijk'; //echo dat dat niet mag
}
}
else //als ?bestand= niet is opgegeven
{
echo 'Geen bestand opgegeven'; //echo dat
}
?>

knop1.onRelease = function()
{
getURL("download.php?bestand=LeverVoorwNed.pdf");

};

minke1990
%Europe/Berlin %520 %2008, 13:29
Ik ben hier ook mee bezig, Ik krijg alleen steeds de melding dat mijn bestand niet bestaat. Ik heb de test.php en LevVoorwNed.pdf in de map flashtest staan. Moet ik nog iets veranderen in de php?

<?php
$dir = 'flashtest/'; //geef een map aan met eindslash (. voor deze map)

if(isset($_GET['bestand'])) //als ?bestand= bestaat
{
if(eregi('../', $_GET['bestand']) == FALSE) //als er geen ../ in de bestandsnaam voorkomt, dus geen upmap wordt aangevraagd
{
if(file_exists($dir.$_GET['bestand'])) //en ?bestand=.. is ook nog eens een bestaand bestand is
{
header('Content-type: Application/octet-stream'); //zet de header dat het bestand gedownload moet worden
//en dat het dus niet in de browser afgespeeld kan worden

header('Content-Disposition: attachment; filename='.$_GET['bestand']); //geef aan welk bestand gedownload moet worden
readfile($dir.$_GET['bestand']); //en open vervolgens dat bestand
}
else //als het bestand niet bestaat
{
echo 'bestand bestaat niet'; //echo dat
}
}
else //als er wel ../ in de bestandsnaam voorkomt
{
echo 'Deze map is niet toegankelijk'; //echo dat dat niet mag
}
}
else //als ?bestand= niet is opgegeven
{
echo 'Geen bestand opgegeven'; //echo dat
}
?>

knop1.onRelease = function()
{
getURL("test.php?bestand=LevVoorwNed.pdf");

};

gagi
%Europe/Berlin %540 %2008, 13:58
He MazMellov,
Bij mij is dezelfde probleem. En dit is mijn download.php

<?php
$dir = 'handtekeningen/'; //geef een map aan met eindslash (. voor deze map)

if(isset($_GET['bestand'])) //als ?bestand= bestaat
{
if(eregi('../', $_GET['bestand']) == FALSE) //als er geen ../ in de bestandsnaam voorkomt, dus geen upmap wordt aangevraagd
{
if(file_exists($dir.$_GET['bestand'])) //en ?bestand=.. is ook nog eens een bestaand bestand is
{
header('Content-type: Application/octet-stream'); //zet de header dat het bestand gedownload moet worden
//en dat het dus niet in de browser afgespeeld kan worden

header('Content-Disposition: attachment; filename='.$_GET['bestand']); //geef aan welk bestand gedownload moet worden
readfile($dir.$_GET['bestand']); //en open vervolgens dat bestand
}
else //als het bestand niet bestaat
{
echo 'bestand bestaat niet'; //echo dat
}
}
else //als er wel ../ in de bestandsnaam voorkomt
{
echo 'Deze map is niet toegankelijk'; //echo dat dat niet mag
}
}
else //als ?bestand= niet is opgegeven
{
echo 'Geen bestand opgegeven'; //echo dat
}
?>

En ActionScript:

on (release) {
getURL("download/handtekeningen/download.php?bestand=magniet.html", "_blank");
}

{

Alles bevind in de map "handtekeningen"
Wat doe ik verkeerd?

Jan
%Europe/Berlin %555 %2008, 14:19
Er is niks mis met dat php script.
Urls die je in flash oproept zijn relatief aan de html pagina waarin de swf ge-embed is en niet aan de locatie van de swf file zelf.
Kloppen de filenames op de server? Hoofdletters?

Groeten,
http://users.telenet.be/jansurf/cwo.pngJan

gagi
%Europe/Berlin %565 %2008, 14:33
Ja Adnez maar ik gebruik geen hoofdletters en zoals je ziet mijn actionscript verwijst naar download/handtekeningen/download.php?bestand=magniet.html
Mijn flash bestand zit dus twee mappen bovenop.
In de map handtekeningen zitten beide bestanden - download.php en magniet.html

Dus wat heb ik verkeerd gedaan want je zegt dat php betand in orde is.

Jan
%Europe/Berlin %581 %2008, 14:58
als je php script in de map handtekeningen zit en je zegt in dat script ga zoeken in de map handtekeningen dan gaat ie op zoek naar een map handtekeningen in de map waar het php script zelf in staat. Dit zou neer komen op:
root/download/handtekeningen/handtekeningen/

Dus ofwel die bovenste regel in je php script weglaten en ook de referenties ernaartoe in de rest van dat php script.
Of bovenaan eventueel die regel vervangen door de huidige directory op te vragen in php: $dir=getcwd(); (get current working directory)
Of dat php script gewoon een map hoger, dus in de map download zetten.

Groeten,
http://users.telenet.be/jansurf/cwo.pngJan

gagi
%Europe/Berlin %635 %2008, 16:15
Bedankt. Het werkt wel

kbc piet
%Europe/Berlin %411 %2008, 10:52
wel, ik probeer dit nu ook te maken. maar zonder succes...
ik heb een map, 'logomap' met de php ($dir = 'download/';) en index.html in. in die logomap staat een map 'download' met de logo (.ai) in.
in index.html staat een .swf met een button met as zoals hierboven vermeld.
on(release){
getURL("logomap/download/logo.php?bestand=logo_rgb.ai", "_blank");
}
wat klopt er dan niet?

Jan
%Europe/Berlin %431 %2008, 11:21
Je zit in logomap en gaat IN die map op zoek naar logomap/download/logo.php.
Bestaat logomap/logomap/download/file.php dan?
Als je een absolute url gebruikt had het wel gekund:
getURL("http://www.jouwdomein.com/logomap/download/logo.php?bestand=logo_rgb.ai", "_blank");
maar via relatieve urls (vanuit de map logomap) is het:
getURL("download/logo.php?bestand=logo_rgb.ai", "_blank");
Groeten,
http://users.telenet.be/jansurf/cwo.png Jan

kbc piet
%Europe/Berlin %879 %2008, 22:06
thnx Jan,
nu snap ik het en ik zou zelfs meer zeggen... het werkt!

gr. P