Script voor eenmalige download
Ik ben al een hele tijd op zoek naar een script waarmee een je kan zorgen dat een bestandje maar eenmalig (van een locatie) te downloaden is. Ik krijg het zelf niet voor elkaar! Kan iemand mij helpen??
Alvast bedankt!
Alvast bedankt!
Hoe bedoel je eenmaleig? Na 1* downloaden deleten? of weigeren? of 1* downloaden per ip????????
Ik snap het niet helemaal...
Ik snap het niet helemaal...
Bedoel je éénmaal per IP adres/gebruiker of gewoonweg éénmaal !?
edit: ok... je was me voor ;-)
edit: ok... je was me voor ;-)
Gewijzigd op 01/01/1970 01:00:00 door Tom
Haha ik was je voor:P
ik bedoel echt eenmalig, dus niet per ip-adres. Het zou idd het mooiste zijn als het bestand na de download gedelet wordt!
Als dit trouwens helemaal niet mogelijk is, dan is de tweede optie inderdaad 1 keer per IP! En niet doormiddel van cookies, want dat blokkeert niet goed genoeg ivm browsers die geen cookies toelaten...
Wordt de dl vanuit een php script aangesproken?
Anders kan je gewoon, eens dat bestand aangesproken werd met de functie unlink() het bestand uit de directory verwijderen.
Anders kan je gewoon, eens dat bestand aangesproken werd met de functie unlink() het bestand uit de directory verwijderen.
Zo roep je m aan: <naamvanditvoorbaal>.php?bestandsnaam=blabla.txt
Kleine wijziging mbt extensie
Kijk op php.net/header
Kleine wijziging mbt extensie
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$bestandsnaam = @$_GET['bestandsnaam'];
//Zoiets bijvoorbeeld:
//$type['css'] = 'text/css';
//$type['js'] = 'text/js';
//etcetera
$type[''] = '/';
if (is_file($bestandsnaam)){
$pathinfo = pathinfo($bestandsnaam);
$extensie = $pathinfo['extension'];
header('Content-type: ' . $extensie);
header('Content-Disposition: attachment; filename=' . $bestandsnaam);
readfile($bestandsnaam);
unlink($bestandsnaam);
?>
$bestandsnaam = @$_GET['bestandsnaam'];
//Zoiets bijvoorbeeld:
//$type['css'] = 'text/css';
//$type['js'] = 'text/js';
//etcetera
$type[''] = '/';
if (is_file($bestandsnaam)){
$pathinfo = pathinfo($bestandsnaam);
$extensie = $pathinfo['extension'];
header('Content-type: ' . $extensie);
header('Content-Disposition: attachment; filename=' . $bestandsnaam);
readfile($bestandsnaam);
unlink($bestandsnaam);
?>
Kijk op php.net/header
Gewijzigd op 01/01/1970 01:00:00 door - -
Zie voor het verkrijgen van de extensie ook de functie http://nl3.php.net/pathinfo
Er zitten wel wat haken en ogen aan verwijderen. Een script mag een bestand alleen verwijderen als dat script ook eigenaar is van dat bestand. Als je zo'n bestand dus zelf op de server hebt gezet, krijg je een foutmelding:
Warning: unlink(plaatje.jpg): Permission denied in /***/***/***/jankoehoorn.nl/HTML/unlink.php on line 2
Als je het bestand via een uploadscript door PHP hebt laten aanmaken, mag het wél.
Er zitten wel wat haken en ogen aan verwijderen. Een script mag een bestand alleen verwijderen als dat script ook eigenaar is van dat bestand. Als je zo'n bestand dus zelf op de server hebt gezet, krijg je een foutmelding:
Warning: unlink(plaatje.jpg): Permission denied in /***/***/***/jankoehoorn.nl/HTML/unlink.php on line 2
Als je het bestand via een uploadscript door PHP hebt laten aanmaken, mag het wél.
Bedankt! ik ga het even proberen
ik snap het extensie verhaal nog niet helemaal hoe moet ik die nou verkrijgen en invullen in $type[''] ='/'; ?? Het is een .zip bestand. Is de locatie hier ook van belang?
OK, ik kom er niet uit! Download hier mijn bestanden: http://www.subroutine.nl/bestanden (20KB)
'bestand.zip' is in deze het bestandje dat na 1 download gedelete moet worden.
Dit moet gebeuren via het bestand download.php, die automatisch geopend wordt door 'inleiding.php'
Degene die de aanpassingen voor mij wil maken (zodat het werkt) is de held van de dag;-)
'bestand.zip' is in deze het bestandje dat na 1 download gedelete moet worden.
Dit moet gebeuren via het bestand download.php, die automatisch geopend wordt door 'inleiding.php'
Degene die de aanpassingen voor mij wil maken (zodat het werkt) is de held van de dag;-)
Ik kan geen php bestanden van jouw server jatten;)
download.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$bestandsnaam = @$_GET['bestandsnaam'];
$type['zip'] = 'application/zip';
if (is_file($bestandsnaam)){
$pathinfo = pathinfo($bestandsnaam);
$extensie = $pathinfo['extension'];
header('Content-type: ' . $extensie);
header('Content-Disposition: attachment; filename=' . $bestandsnaam);
readfile($bestandsnaam);
unlink($bestandsnaam);
}
else{
echo '<pre>Het bestand ' . $bestandsnaam . ' bestaat niet (meer).</pre>';
}
?>
$bestandsnaam = @$_GET['bestandsnaam'];
$type['zip'] = 'application/zip';
if (is_file($bestandsnaam)){
$pathinfo = pathinfo($bestandsnaam);
$extensie = $pathinfo['extension'];
header('Content-type: ' . $extensie);
header('Content-Disposition: attachment; filename=' . $bestandsnaam);
readfile($bestandsnaam);
unlink($bestandsnaam);
}
else{
echo '<pre>Het bestand ' . $bestandsnaam . ' bestaat niet (meer).</pre>';
}
?>
Edit:
Accolade vergeten.
Foutmelding ingebouwd.
Accolade vergeten.
Foutmelding ingebouwd.
Gewijzigd op 01/01/1970 01:00:00 door - -
Ik krijg nu deze error bij download.php:
Parse error: syntax error, unexpected '@' in /download.php on line 2
Bekijk het geheel (niet werkend) hier:
http://www.burostockholm.nl/upload/bestanden/inleiding.php
Parse error: syntax error, unexpected '@' in /download.php on line 2
Bekijk het geheel (niet werkend) hier:
http://www.burostockholm.nl/upload/bestanden/inleiding.php
doe eens zo:
edit:
Beter zo:
/edit
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
##################
###CONFIGURATIE###
##################
$type['zip'] = 'application/zip';
############
###SCRIPT###
############
if (is_file($_GET['bestandsnaam'])){
$bestandsnaam = $_GET['bestandsnaam'];
$pathinfo = pathinfo($bestandsnaam);
$extensie = $pathinfo['extension'];
header('Content-type: ' . $extensie);
header('Content-Disposition: attachment; filename=' . $bestandsnaam);
readfile($bestandsnaam);
unlink($bestandsnaam);
}
?>
##################
###CONFIGURATIE###
##################
$type['zip'] = 'application/zip';
############
###SCRIPT###
############
if (is_file($_GET['bestandsnaam'])){
$bestandsnaam = $_GET['bestandsnaam'];
$pathinfo = pathinfo($bestandsnaam);
$extensie = $pathinfo['extension'];
header('Content-type: ' . $extensie);
header('Content-Disposition: attachment; filename=' . $bestandsnaam);
readfile($bestandsnaam);
unlink($bestandsnaam);
}
?>
edit:
Beter zo:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
##################
###CONFIGURATIE###
##################
$type['zip'] = 'application/zip';
############
###SCRIPT###
############
if (is_file(@$_GET['bestandsnaam'])){
$bestandsnaam = $_GET['bestandsnaam'];
$pathinfo = pathinfo($bestandsnaam);
$extensie = $pathinfo['extension'];
header('Content-type: ' . $extensie);
header('Content-Disposition: attachment; filename=' . $bestandsnaam);
readfile($bestandsnaam);
unlink($bestandsnaam);
}
?>
##################
###CONFIGURATIE###
##################
$type['zip'] = 'application/zip';
############
###SCRIPT###
############
if (is_file(@$_GET['bestandsnaam'])){
$bestandsnaam = $_GET['bestandsnaam'];
$pathinfo = pathinfo($bestandsnaam);
$extensie = $pathinfo['extension'];
header('Content-type: ' . $extensie);
header('Content-Disposition: attachment; filename=' . $bestandsnaam);
readfile($bestandsnaam);
unlink($bestandsnaam);
}
?>
/edit
Gewijzigd op 01/01/1970 01:00:00 door - -
Nu deze error:
Parse error: syntax error, unexpected T_STRING in /download.php on line 2
bekijk weer: http://www.burostockholm.nl/upload/bestanden/inleiding.php
EDIT:
tnx voor de tip!!
Parse error: syntax error, unexpected T_STRING in /download.php on line 2
bekijk weer: http://www.burostockholm.nl/upload/bestanden/inleiding.php
EDIT:
tnx voor de tip!!
Gewijzigd op 01/01/1970 01:00:00 door Joshua Smith
Nog fftjes een tip:
Je kan beter je javascript zo doen:
EN NOG IETS HEEL BELANGRIJKS:
NET ALS IN PHP, GA JE NOOIT FUNCTIENAMEN TUSSEN AANHALINGSTEKENS DOEN!!! (setTimeout("go_now()",10000);)
Je kan beter je javascript zo doen:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
//let niet op de php tags//
setTimeout(parent.window.top.location.href = 'download.php?bestandsnaam=bestand.zip', 10000);
//let niet op de php tags//
?>
//let niet op de php tags//
setTimeout(parent.window.top.location.href = 'download.php?bestandsnaam=bestand.zip', 10000);
//let niet op de php tags//
?>
EN NOG IETS HEEL BELANGRIJKS:
NET ALS IN PHP, GA JE NOOIT FUNCTIENAMEN TUSSEN AANHALINGSTEKENS DOEN!!! (setTimeout("go_now()",10000);)
Gewijzigd op 01/01/1970 01:00:00 door - -
Maar nog steeds die error... doet-ie het bij jou wel??
Parse error: syntax error, unexpected T_STRING in /download.php on line 2
Parse error: syntax error, unexpected T_STRING in /download.php on line 2
Gewijzigd op 01/01/1970 01:00:00 door Joshua Smith




