Force download

Door Koko , 21 jaar geleden, 8.527x bekeken

Met dir script zorg je ervoor dat al de files gedownloaded worden. Ik heb ervoor gezorgd dat er zoveel mogelijk extensies in verwerkt werden. Deze extensielijst hebt ik van http://actionscript.org/forums/showthread.php3?t=89784 . De opstap voor mijn scriptje heb ik dan weer van een andere website: http://www.phpit.net/code/force-download/ . Zo wist ik welke headers ik moest gebruiken.

Of ik het geheel in een class moet zetten of niet, daar ben k ni echt uit geraakt. Vandaar deze enkele functions ;-)

Opbouwende kritiek is steeds welkom! :-D

Gesponsorde koppelingen

PHP script bestanden

  1. force-download

 

Er zijn 29 reacties op 'Force download'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Ponzi
Ponzi
21 jaar geleden
 
0 +1 -0 -1
Simple, but effective...
T H
T H
21 jaar geleden
 
0 +1 -0 -1
Inderdaad :) Ik ga het wel eens een keer testen, komt vast nog wel een keer van pas.

Gr, Tim
B a s
B a s
21 jaar geleden
 
0 +1 -0 -1
Ziet er netjes uit! Dit script kan ook worden gebruikt om alleen even snel een mime-type op te zoeken! Nice!
Rudie dirkx
rudie dirkx
21 jaar geleden
 
0 +1 -0 -1
Simple??? Kenker, vind het alles behalve simpel! Het kan in 10 regels, 1 functie. Waarom wil je mime type weten??? Dat heb je nergens voor nodig! De gebruiker slaat het toch wel op zoals ie zelf wilt, boeiend of het als plaatje of wat dan ook wordt aangeboden, als de extensie maar klopt.

Vind het een zwaar overdreven script en er is zeker geen class voor nodig!
Je print zelfs teveel headers...
Niels Janssen
Niels Janssen
21 jaar geleden
 
0 +1 -0 -1
Man man man... cervettie wat zijn we weer aardig. Dit is een extreem goed script en als jij et nix vin moet je je k*tkop dichthouden, jou reactie is nergens goed voor op deze manier.

@koko: prachtig script, erg handig.
Frank -
Frank -
21 jaar geleden
 
0 +1 -0 -1
@Cervetti: Waarom zou je het mime-type niet nodig hebben? Ik neem aan dat er toch wel een goede reden was om dit uit te vinden, of niet dan?

Verder ben ik benieuwd welke headers volgens jou wél goed zouden zijn, van headers heb ik namelijk helemaal geen kaas gegeten.
Koko
koko
21 jaar geleden
 
0 +1 -0 -1
Hoi,

Het is mogelijk in enkele regels dit probleempje op te lossen (ook al eens gegeven hier op phphulp, k kan t alleen ni meer vinden). Enige nadeel van dat scriptje - vind ik - is dat je niet weet welk type file je aan t downloaden bent. Daarom heb ik gekozen voor het ophalen van de juiste mimetypes.

Als je het echter op de korte manier wilt oplossen gebruik je:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=" . $_GET['bestand']);
@
readfile("pad/".$_GET['bestand']);
?>


Volgens mij is dit ook de oplossing die Cervettie voor heeft. Het is gewoon wat je het liefste hebt ;-)

Iig, ik ben heel blij dat het scriptje jullie bevalt!
Robert Deiman
Robert Deiman
21 jaar geleden
 
0 +1 -0 -1
Inderdaad een mooi scriptje.

@Cervettie

Beveiliging van computers en systemen is altijd nog erg van belang. (alsmede die van websites) Door het mime-type te controleren, kan je voor een aantal personen voorkomen dat ze een "kwaadaardig bestand kunnen downloaden.
Geert
Geert
21 jaar geleden
 
0 +1 -0 -1
volgens mij zit er nog een paar kleine typfoutjes in (bij het ophalen van mime-types). Bij sommige staat er namelijk (even 1 als voorbeeld gepakt ;) ):
'application/vnd.wap.wmlc' => '.wmlc',

maar moet die punt niet weggehaald worden? Omdat je bij de functie get_extensions al explode(".", $filenaam); gebruikt.

Of zit ik nu even verkeerd te denken?
- wes  -
- wes -
21 jaar geleden
 
0 +1 -0 -1
@niels , hou je in, je bent mij niet
Koko
koko
21 jaar geleden
 
0 +1 -0 -1
Hoi,

Ik vond het ook zo raar...wsl heb je gelijk. 'k zal het even aanpassen.
Joeri
Joeri
21 jaar geleden
 
0 +1 -0 -1
@Geert: zaten idd schrijffouten in.

@cervetie: kan jij nooit eens positieve commentaar geven ipv altijd iedereen af te breken. Ik ben al blij dat het een eigen script is en geen onozele copy/paste van een andere site! Dat gebeurt de laatste tijd zeer veel vind ik!

@koko: Leuk script man, zeker het posten waard, mime type te weten komen is steeds interesant en simpel uit te breiden script voor bvb extensies aan afbeeldingen te koppelen. Nice.

Grtz.
PHP Newbie
PHP Newbie
21 jaar geleden
 
0 +1 -0 -1
Een van de weinige scripts van de afgelopen week die ik het keurmerk scriptlib-waardig zou willen geven :-)

Nice
Koko
koko
21 jaar geleden
 
0 +1 -0 -1
WAW!

Zoveel lovende dingen :-D
Nooit verwacht ;-)

Bedankt!
Colin aaaaaaa
Colin aaaaaaa
21 jaar geleden
 
0 +1 -0 -1
Een stomme vraag maar... Wat kun je met dit scriptje?

Hoewel, scriptje...
Nick Mulder
Nick Mulder
21 jaar geleden
 
0 +1 -0 -1
Dat een mp3 niet automatisch in mediaplayer gaat maar dat er zo'n wat wilt u doen venster komt(Opslaan - Openen - Cancel)
Koko
koko
21 jaar geleden
 
0 +1 -0 -1
Of (en daarvoor heb ik het voor mezelf geschreven) dat een .txt of een .jpg niet in de browser getoond wordt maar - zoals YPM al zei - er een venstertje komt om te vragen wat je wilt doen en je dus verplicht die keuze maakt.
Colin aaaaaaa
Colin aaaaaaa
21 jaar geleden
 
0 +1 -0 -1
Ok, bedankt ;)
Red Crew
Red Crew
21 jaar geleden
 
0 +1 -0 -1
koko: Ik kan er niet meer aan toevoegen dan, het is een meesterwerkje.
Of zoals Ponzi zo mooi zei: Simple, but effective...
Dit is het lof zeker waardig.

Mooi werk, houden zo :)
Robert -
Robert -
21 jaar geleden
 
0 +1 -0 -1
Harstikke mooi script Koko, dit kan ik goed gebruiken.
ONOK
ONOK
21 jaar geleden
 
0 +1 -0 -1
Toevallig dat ik dit nu hier lees, ben vandaag uren bezig geweest met een script dat precies goed werkt :P
Ik heb de guldenmiddenweg tussen het script hierboven en de 3 regels van koko. Het script van koko is tekort, zo krijg je de bestandsnaam niet goed door in Firefox als er spaties inzitten. Dit is het belangrijkste stuk van mijn variant:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
    if (is_file($file)){

        header("Pragma: public");
        header("Expires: 0");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Cache-Control: private",false);
        header("Content-type: application/octetstream");
        header("Content-Disposition: attachment; filename=\"$fileinfo[naam]\"");
        
        header("Content-Transfer-Encoding: binary");
        header("Content-Length: $fileinfo[size]");
        set_time_limit(0);
        readfile($file);
    }

?>
Koko
koko
21 jaar geleden
 
0 +1 -0 -1
Hoi,

Ja, dat bedoelde k zo'n beetje ;-)
Krijg je zo ook de juiste mimetypes door?
ONOK
ONOK
21 jaar geleden
 
0 +1 -0 -1
Ja en nee. Elk bestand kan hiermee gewoon goed gedownload worden, echter alle bestanden komen gewoon als download file door (je krijgt altijd een open / save dialog), dus ook bijvoorbeeld images, html of php bestanden. Voor mijn script is dit precies de bedoeling. De bestandsgegevens worden in mijn geval uit een database gehaald, dus geen security risk. Maar wil je dat bijvoorbeeld images/video/html gewoon direct in de browser getoond worden, dan moet je de juiste mime types meegeven zoals in het bovenste stuk. Ik denk wel dat lang niet alle mime-tipes nodig zijn.
Koko
koko
21 jaar geleden
 
0 +1 -0 -1
Nee, helemaal ni!

'k Denk dat je met 20% wel zou toekomen... maar k heb de lijst gevonden en t was maar een kleine moeite om alles derin te zetten ;-) Schrappen is altijd gemakkelijker...
Winston Smith
Winston Smith
21 jaar geleden
 
0 +1 -0 -1
Eventueel zou je die array met mimetypes ook in een database kunnen zetten: dat maakt het onderhoud (verwijderen en toevoegen van mimetypes) wellicht wat makkelijker?
Legolas
Legolas
21 jaar geleden
 
0 +1 -0 -1
ik moet zeggen, als je server mime-type herkenning heeft is dat altijd wel fijn :)

(http://nl3.php.net/manual/nl/ref.mime-magic.php) of beter FileInfo (http://nl3.php.net/manual/nl/ref.fileinfo.php)

Mime's zijn trouwens best fijn als je wilt dat dingen als PDF, MOV, PNG enzo bij de juiste handler terecht komen, anders gewoon application/octet-stream.
Pascal
Pascal
21 jaar geleden
 
0 +1 -0 -1
Als iemand kon zeggen HOE je hem moet gebruiken zou wel erg handig zijn..
Dutch Caffeine
Dutch Caffeine
21 jaar geleden
 
0 +1 -0 -1
Quote:
@koko
Het is mogelijk in enkele regels dit probleempje op te lossen (ook al eens gegeven hier op phphulp, k kan t alleen ni meer vinden). Enige nadeel van dat scriptje - vind ik - is dat je niet weet welk type file je aan t downloaden bent. Daarom heb ik gekozen voor het ophalen van de juiste mimetypes.

Als ik ff wat mag zeggen. Als het niet mag >> zeg ik even goed...

btw ik hem nog niet getest ga het zo ff doen.

Als ik iets download zie ik toch DE ectentie. Hoe zie ik dat:
In het download venster (van ie 6.0) zie ik bijv. naam: beta2.exe de .exe zegt al genoeg denk ik!

Maar toch compliment op zen tijd is ook goed (denk ik)
Het script (ik ben nog maar een groentje in php) ziet er op 1 oogblik goed uit! En hoop ook dat het werkt. GA ZO DOOR MAN..

GR.
Alexander
www.ikmagnietspammen.nl
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Arjan Schuurman
Arjan Schuurman
21 jaar geleden
 
0 +1 -0 -1
@Alexander, moet je nou zo reclame maken...?

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. force-download

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.