PHP bestand downloaden na uploaden

Status
Niet open voor verdere reacties.

gebruiker47

Gebruiker
Lid geworden
4 apr 2011
Berichten
68
Hallo,

Ik heb een uploadscript waar je plaatjes kunt uploaden.
Als dat gebeurt is word hij doorgestuurd naar een andere pagina.
Is er ook een code waar mee je dat bestand dan weer kunt downloaden?
Dus: <?php download "$uploadmap/$filename" ?> of zo?

Groetjes,
 
<a href="<?=$uploadmap.'/'.filename; >">download <?=.filename; ></a>

Dit is de simpelste oplossing gewoon HTML met een beetje PHP
 
Je kunt ook een download forceren maar dat is iets lastiger. Als je de filetype van de image weet (wat wel zou moeten na een upload) dan kun je een header sturen, zo:
PHP:
// De output is een plaatje van het type <x>, in dit geval jpeg
header('Content-Type: image/jpeg');

// Dit geeft aan dat het gedownload moet worden
header('Content-Disposition: attachment; filename="plaatje.ext"');

// Link naar het plaatje dat geupload is
readfile('plaatje.ext');
?>

Met zo'n header moet de browser een "save as" scherm laten zien waarmee je het op kunt slaan.

De vraag is dan alleen... waarom wil je iemand een download aanbieden van een file die ze net opgeslagen hebben :P
 
<a href="<?=$uploadmap.'/'.filename; >">download <?=.filename; ></a>

Dit is de simpelste oplossing gewoon HTML met een beetje PHP

Bedankt, maar dan opent hij hem.
Je moet hem kunnen downloaden.

Frats
Je kunt ook een download forceren maar dat is iets lastiger. Als je de filetype van de image weet (wat wel zou moeten na een upload) dan kun je een header sturen, zo:
PHP Code:
1
2
3
4
5
6
7
8
9
// De output is een plaatje van het type <x>, in dit geval jpeg
header('Content-Type: image/jpeg');

// Dit geeft aan dat het gedownload moet worden
header('Content-Disposition: attachment; filename="plaatje.ext"');

// Link naar het plaatje dat geupload is
readfile('plaatje.ext');
?>

Met zo'n header moet de browser een "save as" scherm laten zien waarmee je het op kunt slaan.

De vraag is dan alleen... waarom wil je iemand een download aanbieden van een file die ze net opgeslagen hebben

Bedankt, frats!
Alleen dit moet op een aparte php-pagina,
maar de vraag is dan nog, hoe ik de filename moet doorsturen naar die aparte pagina.
Weet iemand dat?

En waarom de mensen hem moetten kunnen downloaden:
Ik maak voor de kick een pagina met alle mogelijk heden voor als je het plaatje hebt geüpload. :D (een bb-code, preview plaatje, link naar plaatje...)
 
Hoe open je de nieuwe pagina? Ik vermoed met een header? Want daarin kun je gewoon $_GET data opnemen.

PHP:
header( 'Location: http://jewebsite.nl/de_pagina/download?filename=' . $filename );

Dan kun je hem in de nieuwe pagina gebruiken als $_GET['filename'];
 
hallo,

Ik heb maar een klein beetje verstand van php.
Ik heb helemaal geen verstand van met die header.
Hoe moet ik dat dan precies doen?

Groetjes,
 
Het voorbeeld van Frats stuurt je pagina naar een URL, net zoals je dat zelf in zou typen in de address bar. Op de nieuwe locatie heb je weer een PHP scriptje draaien die reageert op de meegegeven informatie.

Testscriptje in je hooddirectory, bijvoorbeeld "test1.php":

PHP:
 <?php
header( 'Location: http://{URL of IP adres hier}/test/test?filename=henk');
?>

Test.php in de /test directory:

PHP:
<?php
Echo $_GET["filename"];
?>

type nu <adres>/test1.php in, en je wordt vervolgens doorgelinkt naar je tweede locatie waar de variabele die je in "filename" hebt opgeslagen wordt getoond op je scherm
 
Laatst bewerkt:
wow, bedankt allemaal,

Ik heb nu op download.php:
PHP:
<?php
header( 'Location: /uploads?filename=' . $filename ');

?>

en op uploads/uploads.php:
PHP:
<?php
Echo $_GET["filename"];
?>

en toch word ik nog naar de pagina www.site.nl/uploads/?filename= gestuurd, zonder de bstandsnaam erachter dus, en hij downloadt niet.
 
Als dat het enige is in je file, is $filename natuurlijk leeg. De header code moet je onder je upload code. In je voorbeeld heb je volgens mij ook een ' teveel op het eind.

Heb je $filename wel in gebruik? is $filename ook de variabele waaronder het bestand is geupload? Wij kunnen zonder je code natuurlijk alleen maar gokken welke namen jij gebruikt :)
 
hallo,
ik gebruik $filename wel.
alleen ik heb een uploadform (upload.php) en een verwerkingspagina (upload_file.php)
In upload_file.php staat: uw bestand is geupload (of niet). en daar wil ik een linkje naar toe naar het downloaden van het geuploade bestand. alleen de info van $filename, die moet ik dan doorsturen naar download.php. en dat is denk ik het probleem. de ingevulde gegevens van upload.php stuur ik met <form action="Upload_file.php"> door naar Upload_file.php. Hoe moet ik dan weer de info van Upload_file.php naar download.php sturen?
 
hoe haal je de informatie eruit bij upload_file? ik neem aan dan via een $_post?
 
Dat prikkelt altijd mijn nieuwsgierigheid: vragenstellers die opeens melden dat ze een andere oplossing hebben, en niet vertellen welke.
En m'n telepathie is ook niet meer wat ie geweest is... ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan