login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Fout in bestandnaam bij downloadn uit database (Opgelost)

Offline Maarten1984 - 19/02/2009 13:02
Avatar van Maarten1984Nieuw lid Ik heb een website gemaakt waarin mensen een word document kunnen uploaden via een formulier naar een database en wanneer nodig ook weer kunnen downloaden van de website.

Het downloaden gebeurt via een php script die ik bsc_downloadword.php heb genoemd en die ziet er als volgt uit:

  1. <?php
  2.  
  3. $id=$_REQUEST['id'];
  4.  
  5. if(!is_numeric($id))
  6. {
  7. die("Invalid id specified: $id");
  8. }
  9.  
  10. // Database connection variables
  11.  
  12. $dbServer = "...";
  13. $dbDatabase = "...";
  14. $dbUser = "...";
  15. $dbPass = "...";
  16.  
  17. $sConn = mysql_connect($dbServer, $dbUser, $dbPass)
  18. or die("Couldn't connect to database server");
  19.  
  20. $dConn = mysql_select_db($dbDatabase, $sConn)
  21. or die("Couldn't connect to database $dbDatabase");
  22.  
  23. $dbQuery = "SELECT titel, source_type, source_file ";
  24. $dbQuery .= "FROM bsc_eindwerken ";
  25. $dbQuery .= "WHERE id = $id";
  26.  
  27. $result = mysql_query($dbQuery) or die("Couldn't get file list");
  28.  
  29. if(mysql_num_rows($result) == 1)
  30. {
  31. $fileName = @mysql_result($result, 0, "titel");
  32. $fileName .= ".doc";
  33. $fileType = @mysql_result($result, 0, "source_type");
  34. $fileContent = @mysql_result($result, 0, "source_file");
  35.  
  36. header("Content-type: $fileType");
  37. header("Content-Disposition: attachment; filename=$fileName");
  38.  
  39. echo $fileContent;
  40. }
  41. else
  42. {
  43. echo "Record doesn't exist.";
  44. }
  45. ?>

Voorheen als je een word-bestand wilde downloaden werdt het word document 'bsc_downloadword.php.doc' genoemd. Dit was niet wenselijk want ik wil dat mensen de orginele naam van het document zien als ze het downloaden. Toen heb ik er de volgende regels aan de script toegevoegd:
  1. $fileName = @mysql_result($result, 0, "titel");
  2. $fileName .= ".doc";
  3.  
  4. header("Content-Disposition: attachment; filename=$fileName");

Bij het downloaden van een word-bestand wordt nu alleen het eerste woord van de orginele titel weergegeven. Dus als de titel is 'Dit is de titel.doc' wordt er alleen 'Dit.doc' weergegeven. Weet iemand hoe ik de code kan uitbreiden zodat de gehele orginele titel wordt weergegeven?

2 antwoorden

Gesponsorde links
Offline derrtyones - 19/02/2009 13:07
Avatar van derrtyones Nieuw lid Met urlencode:

http://nl.php.net/urlencode
Offline Maarten1984 - 20/02/2009 13:30
Avatar van Maarten1984 Nieuw lid Oké het is opgelost. In IE bleek het wel gewoon te werken..., alleen Firefox niet.

Ik heb het veranderd in het volgende:
  1. header('Content-Disposition: attachment; filename="'.basename($fileName).'"');
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.194s