Script voor eenmalige download
1 moment
ok
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
##################
###CONFIGURATIE###
##################
$type['zip'] = 'application/zip';
############
###SCRIPT###
############
if (isset($_GET['bestandsnaam']) AND is_file(@$_GET['bestandsnaam'])){
$bestandsnaam = $_GET['bestandsnaam'];
if (isset($_GET['actie']) AND (@$_GET['actie']=='downloaden' OR @$_GET['actie']=='verwijderen')){
$actie = $_GET['actie'];
if ($actie=='downloaden'){
$padinfo = pathinfo($bestandsnaam);
$extensie = $padinfo['extension'];
$type = $type[$extensie];
header('Content-type: ' . $type);
header('Content-Disposition: attachment; filename=' . $bestandsnaam);
readfile($bestandsnaam);
header('Location: ' . $_SERVER['SCRIPT_NAME'] . '?bestandsnaam=' . $bestandsnaam . '&actie=verwijderen');
}
elseif ($actie=='verwijderen'){
unlink($bestandsnaam);
}
}
else{
echo 'De actie klopt niet.';
}
}
else{
echo 'De bestandsnaam klopt niet.';
}
?>
##################
###CONFIGURATIE###
##################
$type['zip'] = 'application/zip';
############
###SCRIPT###
############
if (isset($_GET['bestandsnaam']) AND is_file(@$_GET['bestandsnaam'])){
$bestandsnaam = $_GET['bestandsnaam'];
if (isset($_GET['actie']) AND (@$_GET['actie']=='downloaden' OR @$_GET['actie']=='verwijderen')){
$actie = $_GET['actie'];
if ($actie=='downloaden'){
$padinfo = pathinfo($bestandsnaam);
$extensie = $padinfo['extension'];
$type = $type[$extensie];
header('Content-type: ' . $type);
header('Content-Disposition: attachment; filename=' . $bestandsnaam);
readfile($bestandsnaam);
header('Location: ' . $_SERVER['SCRIPT_NAME'] . '?bestandsnaam=' . $bestandsnaam . '&actie=verwijderen');
}
elseif ($actie=='verwijderen'){
unlink($bestandsnaam);
}
}
else{
echo 'De actie klopt niet.';
}
}
else{
echo 'De bestandsnaam klopt niet.';
}
?>
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
##################
###CONFIGURATIE###
##################
$type['zip'] = 'application/zip';
############
###SCRIPT###
############
if (isset($_GET['bestandsnaam']) AND is_file(@$_GET['bestandsnaam'])){
$bestandsnaam = $_GET['bestandsnaam'];
$padinfo = pathinfo($bestandsnaam);
$extensie = $padinfo['extension'];
if (isset($type[$extensie])){
if (isset($_GET['actie']) AND (@$_GET['actie']=='downloaden' OR @$_GET['actie']=='verwijderen')){
$actie = $_GET['actie'];
if ($actie=='downloaden'){
$type = $type[$extensie];
header('Content-type: ' . $type);
header('Content-Disposition: attachment; filename=' . $bestandsnaam);
readfile($bestandsnaam);
header('Location: ' . $_SERVER['SCRIPT_NAME'] . '?bestandsnaam=' . $bestandsnaam . '&actie=verwijderen');
}
elseif ($actie=='verwijderen'){
unlink($bestandsnaam);
}
}
else{
echo 'De actie klopt niet.';
}
}
else{
echo 'De extensie klopt niet.';
}
}
else{
echo 'De bestandsnaam klopt niet.';
}
?>
##################
###CONFIGURATIE###
##################
$type['zip'] = 'application/zip';
############
###SCRIPT###
############
if (isset($_GET['bestandsnaam']) AND is_file(@$_GET['bestandsnaam'])){
$bestandsnaam = $_GET['bestandsnaam'];
$padinfo = pathinfo($bestandsnaam);
$extensie = $padinfo['extension'];
if (isset($type[$extensie])){
if (isset($_GET['actie']) AND (@$_GET['actie']=='downloaden' OR @$_GET['actie']=='verwijderen')){
$actie = $_GET['actie'];
if ($actie=='downloaden'){
$type = $type[$extensie];
header('Content-type: ' . $type);
header('Content-Disposition: attachment; filename=' . $bestandsnaam);
readfile($bestandsnaam);
header('Location: ' . $_SERVER['SCRIPT_NAME'] . '?bestandsnaam=' . $bestandsnaam . '&actie=verwijderen');
}
elseif ($actie=='verwijderen'){
unlink($bestandsnaam);
}
}
else{
echo 'De actie klopt niet.';
}
}
else{
echo 'De extensie klopt niet.';
}
}
else{
echo 'De bestandsnaam klopt niet.';
}
?>
Nog steeds diezelfde error! ik snap er niets gaan, ik heb ze geupload via eigen php-script (http://www.burostockholm.nl/upload/uploadserver.php), de juiste mappen zijn naar 777 geCHMOD etc. ik weet niet wat er niet goed gaat!
http://jonathanhogervorst.com/download.php?bestandsnaam=download.zip&actie=downloaden
trouwens nu moet je het bestand zo aanroepen:
bestandsnaam.php?bestandsnaam=zipje&actie=downloaden
Het ligt aan jouw server: check dit: trouwens nu moet je het bestand zo aanroepen:
bestandsnaam.php?bestandsnaam=zipje&actie=downloaden
Gewijzigd op 01/01/1970 01:00:00 door Joshua Smith
Gewijzigd op 01/01/1970 01:00:00 door Joshua Smith
Heeft iemand hier dan een oplossing voor???
@ Jonathan: wat gebruik jij?
Gewijzigd op 01/01/1970 01:00:00 door Joshua Smith
Je moet de hele uploaddirectory chmodden naar 777. Dus niet losse bestanden!!!
Joshua:
Ik weet inmiddels waar het aan ligt: Ik kan mijn bestanden niet CHMODDEN als ik ze via mijn php-uploadscript heb geupload (wat noodzakelijk is)
Heeft iemand hier dan een oplossing voor???
@ Jonathan: wat gebruik jij?
Heeft iemand hier dan een oplossing voor???
@ Jonathan: wat gebruik jij?
Als je ze via een script uploadt, kun je ze ook via je script chmodden. Na het uploaden doe je gewoon
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Maar nu draai je de unlink ook pas als de bezoeker op de volgende pagina komt waar je vroeger met de redirect naartoe zou gaan. Dat werkt niet. Na de readfile moet dus meteen een unlink komen (na het versturen heb je het immers niet meer nodig). Het script ziet er dan als volgt uit:
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
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
$type['zip'] = 'application/zip';
if (isset($_GET['bestandsnaam']) AND is_file(@$_GET['bestandsnaam'])){
$bestandsnaam = $_GET['bestandsnaam'];
$padinfo = pathinfo($bestandsnaam);
$extensie = $padinfo['extension'];
if (isset($type[$extensie])){
if (isset($_GET['actie']) AND (@$_GET['actie']=='downloaden' OR @$_GET['actie']=='verwijderen')){
$actie = $_GET['actie'];
$type = $type[$extensie];
header('Content-type: ' . $type);
header('Content-Disposition: attachment; filename=' . $bestandsnaam);
readfile($bestandsnaam);
unlink($bestandsnaam);
}
else{
echo 'De actie klopt niet.';
}
}
else{
echo 'De extensie klopt niet.';
}
}
else{
echo 'De bestandsnaam klopt niet.';
}
?>
$type['zip'] = 'application/zip';
if (isset($_GET['bestandsnaam']) AND is_file(@$_GET['bestandsnaam'])){
$bestandsnaam = $_GET['bestandsnaam'];
$padinfo = pathinfo($bestandsnaam);
$extensie = $padinfo['extension'];
if (isset($type[$extensie])){
if (isset($_GET['actie']) AND (@$_GET['actie']=='downloaden' OR @$_GET['actie']=='verwijderen')){
$actie = $_GET['actie'];
$type = $type[$extensie];
header('Content-type: ' . $type);
header('Content-Disposition: attachment; filename=' . $bestandsnaam);
readfile($bestandsnaam);
unlink($bestandsnaam);
}
else{
echo 'De actie klopt niet.';
}
}
else{
echo 'De extensie klopt niet.';
}
}
else{
echo 'De bestandsnaam klopt niet.';
}
?>
Dit werkt bij mij wel, ongeacht of ik m'n bestanden nou CHMOD! Vallen er nog andere verbeteringen aan te maken?
Gewijzigd op 01/01/1970 01:00:00 door Joshua Smith