login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Bestand downloaden en mod_rewrite

Offline letscode - 07/04/2006 19:57
Avatar van letscodeHTML beginner Hallo,

Ik heb een probleem met mijn mod_rewrite funcit icm met het aanbieden van een download.

http://www.plaatscode.be/788/

De url is http://localhost/concepten/jeve2/index/nieuwsbrief
terwijl de map van de download http://localhost/concepten/jeve2/nieuwsbrief is.
Hoe kan ik nu zorgen dat het bestand nu goed gedownload wordt, want hij geeft nu gewoon het php bestand.

Ik hoop dat jullie het zo snappen...

12 antwoorden

Gesponsorde links
Offline Gerard - 08/04/2006 05:58
Avatar van Gerard Ouwe rakker 1. Geen pagina's om te zien wat er nu fout gaat (localhost)
2. Je pastebin is niet gehighlight (ook lekker nutteloos, moet ik weer copy/pasten)
Offline kokx - 08/04/2006 09:10 (laatste wijziging 08/04/2006 09:11)
Avatar van kokx Onbekend Ik heb er ff <?php en ?> omgezet: http://www.pastebin.be/795/

msql_close()
==>
mysql_close();
Offline letscode - 08/04/2006 15:05 (laatste wijziging 12/04/2006 17:39)
Avatar van letscode HTML beginner ik heb die mysql_close(); ook aangepast
http://www.pastebin.be/807/

een een voorbeeld staat op http://janwiebe.5gigs.com/jeve2/index/nieuwsbrief
Als je het bestand downloadt krijg je gewoon de html van de pagina in je word 
-------------------------------------------------------------------
edit:
Ik denk dat ik om php/apache te misleiden daarom gewoon twee mappen omhoog moet.
dus iets met opendir:
  1. <?php
  2. $dir = opendir("../");
  3. ?>

Maar ik weet niet hoe ik dat moet doen om twee mappen omhoog :S
Kan iemand mij daarbij helpen?
Offline roelh - 12/04/2006 17:43
Avatar van roelh PHP gevorderde
  1. <?php
  2. $dir = opendir("../../");
  3. ?>


Zoiets miss? 
Offline letscode - 12/04/2006 17:46 (laatste wijziging 12/04/2006 20:26)
Avatar van letscode HTML beginner ik weet niet want het moet in het volgende:
  1. <?php
  2. if ($dir = opendir($result['pad'])) {
  3. readfile($result['bestandsnaam']);
  4. closedir($dir);
  5. }
  6. ?>

(komt uit http://www.pastebin.be/807/)

Maar ik heb het volgende al wel geprobeerd maar dát werkte niet:
  1. <?php
  2. if ($dir = opendir("../../".$result['pad'])) {
  3. readfile($result['bestandsnaam']);
  4. closedir($dir);
  5. }
  6. ?>
Offline Thomas - 13/04/2006 09:33 (laatste wijziging 13/04/2006 09:33)
Avatar van Thomas Moderator Werkt gewoon vanuit je document-root ($_SERVER['DOCUMENT_ROOT']) - dan hoef je je scripts ook niet aan te passen op het moment dat je deze verplaatst...
Offline ikkedikke - 13/04/2006 14:44
Avatar van ikkedikke PHP expert waarom wil je eik die opendir gebruiken? zet in je database gewoon het absolute pad dan heb je al dat gezeik niet 
Offline letscode - 13/04/2006 18:21
Avatar van letscode HTML beginner @ikkedikke:

Dat vind ik wel een goed idee, maar ik weet niet niet precies hoe ik dan dan met readfile en/of opendir uit moet voeren. Ik heb namelijk de volgende twee dingen geprobeerd nadat ik
  1. <?php
  2. $result['pad']="http://janwiebe.5gigs.com/nieuwsbrief/";
  3. ?>

in de db gemaakt had.
  1. <?php
  2. if ($dir = opendir($result['pad'])) {
  3. readfile($result['bestandsnaam']);
  4. closedir($dir);
  5. }
  6. ?>

en
  1. <?php
  2.  
  3. readfile($result['pad'].$result['bestandsnaam']);
  4.  
  5. ?>
Offline ikkedikke - 14/04/2006 12:16
Avatar van ikkedikke PHP expert in je database moet je het absolute interne pad zetten. dus als je op een windowsserver zit: C:\apache\htdocs\blabla\bestand.jpg
dan zijn er 2 manieren om deze te downloaden: een makkelijke en een omslachtige
<?
chdir(dirname($result['pad']));
readfile(basename($result['pad']));
?>
of
<?
readfile($result['pad']);
?>
Offline letscode - 14/04/2006 15:16
Avatar van letscode HTML beginner Ik heb het met beide manieren geprobeerd:
  1. <?php
  2. chdir(dirname($result['pad']));
  3. readfile(basename($result['pad']));
  4. ?>

Bij deze krijg ik ín het wordbestand dat geopend wordt de html pagina te zien met de volgende error:
Warning: chdir() [function.chdir]: No such file or directory (errno 2) in /home/janw4656/public_html/index.php on line 953

Bij de laatste manier
  1. <?php
  2. readfile($result['pad']);
  3. ?>

Krijg ik alleen de htmlpagina(wat dus ook niet de bedoeling is) zonder error
Offline ikkedikke - 14/04/2006 22:49
Avatar van ikkedikke PHP expert geef dan is de rij uit de database van het bestand dat je probeerde te downloaden?
Offline letscode - 15/04/2006 13:55
Avatar van letscode HTML beginner Hier is mijn db tabel even:
  1. CREATE TABLE downloadsysteem (
  2. id int(5) NOT NULL auto_increment,
  3. bestandsnaam varchar(50) NOT NULL default '',
  4. pad varchar(255) NOT NULL default '',
  5. type varchar(25) NOT NULL default '',
  6. grootte varchar(5) NOT NULL default '',
  7. klik int(9) NOT NULL default '0',
  8. datetime datetime NOT NULL default '0000-00-00 00:00:00',
  9. ip text,
  10. PRIMARY KEY (id)
  11. ) TYPE=MyISAM AUTO_INCREMENT=8 ;
  12.  
  13.  
  14.  
  15. INSERT INTO downloadsysteem VALUES (7, 't_Onder_onsje_Januari_2006.doc', '/nieuwsbrief/', 'application/msword', '19968', 28, '2006-04-07 00:43:38', ' <213.233.252.133> ');


Ik heb de code nu als volgt:
  1. <?php
  2.  
  3. header("Content-type: ".$result['type']."");
  4. header("Content-Disposition: attachment; filename=".$result['bestandsnaam']."");
  5.  
  6. readfile($_SERVER['DOCUMENT_ROOT'].$result['pad'].$result['bestandsnaam']);
  7. ?>

Nu rest er alleen nog maar het probleem dat als je het word-document opent er de hele website in verschijnt met in het
content vak de inhoud van het word-document:S
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.28s