Script voor eenmalige download
Alvast bedankt!
Ik snap het niet helemaal...
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...
Anders kan je gewoon, eens dat bestand aangesproken werd met de functie unlink() het bestand uit de directory verwijderen.
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 - -
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.
Zie voor het verkrijgen van de extensie ook de functie 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?
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;-)
OK, ik kom er niet uit! Download hier mijn bestanden: '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;)
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 - -
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
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 - -
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
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 - -
Parse error: syntax error, unexpected T_STRING in /download.php on line 2
Gewijzigd op 01/01/1970 01:00:00 door Joshua Smith