download binary files from database

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Dux

    download binary files from database

    I have used some example code to create a database in MySQL and using
    php I can add binary files to the database. I was under the impression
    that I would be able to download the files with the source code
    provided, but am having trouble doing that.

    <?php
    if ($id_files) {
    include "./include/open_db.inc";
    $sql = "SELECT bin_data, filetype, filename, filesize FROM tbl_Files
    WHERE id_files=$id_fi les";

    $result = @mysql_query($s ql, $db);
    $data = @mysql_result($ result, 0, "bin_data") ;
    $name = @mysql_result($ result, 0, "filename") ;
    $size = @mysql_result($ result, 0, "filesize") ;
    $type = @mysql_result($ result, 0, "filetype") ;

    header("Content-type: $type");
    header("Content-length: $size");
    header("Content-Disposition: attachment; filename=$name" );
    header("Content-Description: PHP Generated Data");
    echo $data;
    }
    ?>

    I thought I would be greeted with a dialog box asking me where i want to
    save my file.

    Am I getting the wrong impression?

    How would I go about downloading the data from database?

    Thanks.

  • Sebestyén Dénes

    #2
    Re: download binary files from database

    Maybe the filetype is incorrect, I suggest to use application/octet-stream.
    I could get it with this.

    "Dux" <dux@nospam.com > wrote in message
    news:be3gl6$707 $1@titan.btinte rnet.com...[color=blue]
    > I have used some example code to create a database in MySQL and using
    > php I can add binary files to the database. I was under the impression
    > that I would be able to download the files with the source code
    > provided, but am having trouble doing that.
    >
    > <?php
    > if ($id_files) {
    > include "./include/open_db.inc";
    > $sql = "SELECT bin_data, filetype, filename, filesize FROM tbl_Files
    > WHERE id_files=$id_fi les";
    >
    > $result = @mysql_query($s ql, $db);
    > $data = @mysql_result($ result, 0, "bin_data") ;
    > $name = @mysql_result($ result, 0, "filename") ;
    > $size = @mysql_result($ result, 0, "filesize") ;
    > $type = @mysql_result($ result, 0, "filetype") ;
    >
    > header("Content-type: $type");
    > header("Content-length: $size");
    > header("Content-Disposition: attachment; filename=$name" );
    > header("Content-Description: PHP Generated Data");
    > echo $data;
    > }
    > ?>
    >
    > I thought I would be greeted with a dialog box asking me where i want to
    > save my file.
    >
    > Am I getting the wrong impression?
    >
    > How would I go about downloading the data from database?
    >
    > Thanks.
    >[/color]


    Comment

    • duxbuz

      #3
      Re: download binary files from database

      "Sebestyén Dénes" wrote:
      [color=blue]
      > Maybe the filetype is incorrect, I suggest to use application/octet-stream.
      > I could get it with this.
      >
      > "Dux" <dux@nospam.com > wrote in message
      > news:be3gl6$707 $1@titan.btinte rnet.com...[color=green]
      > > I have used some example code to create a database in MySQL and using
      > > php I can add binary files to the database. I was under the impression
      > > that I would be able to download the files with the source code
      > > provided, but am having trouble doing that.
      > >
      > > <?php
      > > if ($id_files) {
      > > include "./include/open_db.inc";
      > > $sql = "SELECT bin_data, filetype, filename, filesize FROM tbl_Files
      > > WHERE id_files=$id_fi les";
      > >
      > > $result = @mysql_query($s ql, $db);
      > > $data = @mysql_result($ result, 0, "bin_data") ;
      > > $name = @mysql_result($ result, 0, "filename") ;
      > > $size = @mysql_result($ result, 0, "filesize") ;
      > > $type = @mysql_result($ result, 0, "filetype") ;
      > >
      > > header("Content-type: $type");
      > > header("Content-length: $size");
      > > header("Content-Disposition: attachment; filename=$name" );
      > > header("Content-Description: PHP Generated Data");
      > > echo $data;
      > > }
      > > ?>
      > >
      > > I thought I would be greeted with a dialog box asking me where i want to
      > > save my file.
      > >
      > > Am I getting the wrong impression?
      > >
      > > How would I go about downloading the data from database?
      > >
      > > Thanks.
      > >[/color][/color]

      Thanks for help, but....

      Still not getting a file to download. My database output looks like this:

      Filename Type Size
      Description

      putty.exe application/octet-stream 356352 Putty
      Application, ssh client for win32 (Download )
      readme.txt text/plain 9851
      mozilla readme ( Download )

      So the type is application/octet-stream, but still no download.

      What am I missing?



      Comment

      • Sebestyén Dénes

        #4
        Re: download binary files from database

        Is the case of the field-name OK? Because I think php is case-sensitive for
        getting variables from a database, and I can't think anything else that can
        cause an error like this...
        Maybe for debugging try to change header() to echo to see if it's right.

        "duxbuz" <webmaster@duxb uz.com> wrote in message
        news:3F06C69B.4 D0D2F5C@duxbuz. com...[color=blue]
        >
        > Thanks for help, but....
        >
        > Still not getting a file to download. My database output looks like this:
        >
        > Filename Type Size
        > Description
        >
        > putty.exe application/octet-stream 356352 Putty
        > Application, ssh client for win32 (Download )
        > readme.txt text/plain 9851
        > mozilla readme[/color]
        ( Download )[color=blue]
        >
        > So the type is application/octet-stream, but still no download.
        >
        > What am I missing?
        >
        >
        >[/color]


        Comment

        Working...