Problemen met download script.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bart van Asselt

Bart van Asselt

20/11/2008 11:06:00
Quote Anchor link
Hallo, ik heb een download script gemaakt wat niet schijnt te werken, daarom de vraag of er iemand naar wil kijken.

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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php

include("include/basis.php");

  $id = $_GET["id"];


  $module = $mysqli->query("SELECT * FROM admin_file_manager WHERE id = $id") or $mysqli->error;
  if ($module->num_rows > "0")
  {

    $res = $module->fetch_array();
        
if ( ! function_exists ( 'mime_content_type ' ) )
{
   function
mime_content_type ( $f )
   {

       return trim ( exec ('file -bi ' . escapeshellarg ( $f ) ) ) ;
   }
}


    $file = "admin/data/".$res["bestand"];
    if (file_exists($file)) {
      $mysqli->query("UPDATE admin_file_manager SET hits=hits+1 WHERE id=$id") or $mysqli->error;
      $ext = substr($file, -3);
      $mtype = mime_content_type($file);
      header('Content-Description: File Transfer');
      header('Content-Type: '.$mtype.'');
      header('Content-Disposition: attachment; filename='.basename($res["naam"].".".$ext).'');
      header('Content-Transfer-Encoding: binary');
      header('Expires: 0');
      header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
      header('Pragma: public');
      header('Content-Length: '.filesize($file).'');
      ob_clean();
      flush();
      readfile($file);
      exit;
    }

    else
    {
      echo 'bestand bestaat niet';
    }
  }

  else
  {
    header("Location: ".$_SERVER["HTTP_REFERER"]);
    die;
  }

?>


In firefox krijg ik dan de volgende melding: blabla, kon niet worden opgeslagen omdat het bronbestand niet gelezen kon worden.

Iemand weet wat ik fout doe?
Gewijzigd op 01/01/1970 01:00:00 door Bart van Asselt
 
PHP hulp

PHP hulp

28/03/2024 14:24:45
 
Arjan Kapteijn

Arjan Kapteijn

20/11/2008 11:09:00
Quote Anchor link
ob_clean() & flush() zou niet nodig moeten zijn. Denk ook dat daar het probleem ligt, er worden headers verstuurd waarna je deze pushed naar de gebruiker voordat het bestand word gelezen.
 
Bart van Asselt

Bart van Asselt

20/11/2008 13:44:00
Quote Anchor link
Dat was het probleem dus, nu een ander probleem, als er spaties in de bestandsnaam zitten, download ij het bestand wel alleen stopt de naam bij een spatie oftewel: hallo wereld.doc veranderd in hallo.doc

Ik dacht aan rawurlencode() dan gaat het wel goed alleen zijn dan de spaties veranderd in %20
 
Andytjuh Bruggeman

andytjuh Bruggeman

20/11/2008 13:47:00
 
- SanThe -

- SanThe -

20/11/2008 15:03:00
Quote Anchor link
Spaties horen ook niet in een bestandsnaam.
 



Overzicht Reageren

 
 

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.