een bestand via link downloaden (uit dir)
ik heb een script waar je files mee kan uploaden en op een php pagina kan terug kijken wat er in een directory staat.
hierbij wordt gewoon de hele directory uit gelezen en als links weer gegeven.
als ik nu zo'n link aan klikt opent hij het bestand in een nieuw tabblad.
ik wil dat het bestand gelijk gedownload wordt. hoe doe ik dit?
en dan zou ik ook graag de lijst met bestanden willen sorteren op naam.
hier heb ik al een tabel voor gemaakt maar dit werkt ook nog 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
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
<table class="sortable" align="center">
<thead>
<tr><th>GPX</th></tr>
</thead>
<tbody>
<tr>
<td>
<?php
/* Get file stat */
$stat = stat('uploads/');
$path = 'uploads/';
$files = glob( $path . '*.gpx' );
if( is_array( $files ) && count( $files ) > 0 ) {
sort( $files );
foreach( $files AS $file ) {
printf(
'<a href="%s" target="_blank" style="color: #0000ff" >%s</a>'.'<br />' ,
$file,
basename( $file )
);
}
}
else {
echo 'Er zijn geen gpx bestanden in de map' . $path;
}
?>
</td>
</tr>
</tbody>
<tfoot></tfoot>
</table>
<thead>
<tr><th>GPX</th></tr>
</thead>
<tbody>
<tr>
<td>
<?php
/* Get file stat */
$stat = stat('uploads/');
$path = 'uploads/';
$files = glob( $path . '*.gpx' );
if( is_array( $files ) && count( $files ) > 0 ) {
sort( $files );
foreach( $files AS $file ) {
printf(
'<a href="%s" target="_blank" style="color: #0000ff" >%s</a>'.'<br />' ,
$file,
basename( $file )
);
}
}
else {
echo 'Er zijn geen gpx bestanden in de map' . $path;
}
?>
</td>
</tr>
</tbody>
<tfoot></tfoot>
</table>
Gewijzigd op 15/03/2014 14:27:06 door Marcel sauer
Maar let op dat je op deze manier iedereen toegang geeft tot alle bestanden. Als de bestanden dus per user getoond worden, dan kan je door de link te raden de andere bestanden ook downloaden. Als dat niet moet kunnen zou ik er een php scriptje tussen plakken. Dus de download link gaat naar een php script, dat controleert of de gebruiker het mag zien en downloaden en dat script biedt het bestand vervolgens (met de juiste headers) aan voor download. Bestanden zet je verder in een niet publieke directory.
en daar heb ik deze ene zin in gezet.
ik heb de htaccess file in de map uploads gezet.
en in het php script target="_blank" verwijderd.
nu werkt het nog exact zoals voorheen .... het php bestand met het script staat op de root.
Heb je Apache herstart?
uhhh sorry? ik heb geen idee wat je daar mee bedoelt....
Zet eens tijdelijk een regel onzin in .htaccess? Als de server dan niet op een 500 Internal Server Error blijft hangen, weet je dat het .htaccess-bestand niet wordt gebruikt.
edit : ik heb de htaccess opnieuw geplaatst en de folder met bestanden gewist en opnieuw aangemaakt en nu werkt het wel! super!!!
heb je ook nog een idee hoe ik deze via een tabel verder kan sorteren?
ik heb meerdere tabellen waar het wel mee kan alleen deze werken met mysql.
Gewijzigd op 15/03/2014 16:50:34 door marcel sauer