For Programmers: Free Programming Magazines  


Home > Archive > PHP DB > March 2006 > RE: [PHP-DB] help with file downloads from MySQL









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author RE: [PHP-DB] help with file downloads from MySQL
Bastien Koert

2006-03-21, 9:58 pm

If you load the data into the field with addslashes, have you tried
stripslashes on the way out?

Bastien


>From: "Mickey Martin" <Mickey.Martin@alcatel.com>
>To: php-db@lists.php.net
>Subject: [PHP-DB] help with file downloads from MySQL
>Date: Tue, 21 Mar 2006 12:55:56 -0600
>
>Every time I try to download a file from MySQL it cannot be opened. Using
>HexEdit, I noticed that all of the files are getting 0a added to the
>beginning of them (happens with all browsers).
>
>I can look at the files with MySQL Query Browser and they don't have the
>0a.
>Using php 4.3.11, Solaris 8, apache 2.0.54, MySQL 4.1.11.
>
>Here's what I'm using:
>mysql_select_db($database_ctnwww, $ctnwww);
>$query_Attachment = sprintf("SELECT bin_data, filetype, filename, filesize
>FROM IssueAttach WHERE id_files=%s", $_GET['id_files']);
>$Attachment = mysql_query($query_Attachment, $ctnwww) or
>die(mysql_error());
>$row_Attachment = mysql_fetch_array($Attachment);
>
> $data = $row_Attachment['bin_data'];
> $name = $row_Attachment['filename'];
> $size = $row_Attachment['filesize'];
> $type = $row_Attachment['filetype'];
>
> header("Content-type: $type");
> header("Content-length: $size");
> header("Content-Disposition: attachment; filename=$name");
> header("Content-Description: PHP Generated Data");
> echo $data;
>
>Thanks in advance,
>Mickey
>
>--
>PHP Database Mailing List (http://www.php.net/)
>To unsubscribe, visit: http://www.php.net/unsub.php
>

Mickey Martin

2006-03-21, 9:58 pm

Stripslashes causes the download to hang. I've also tried with base64_encode
on the upload and base64_decode on the download with the same results.



-----Original Message-----
From: Bastien Koert [mailto:bastien_k@hotmail.com]
Sent: Tuesday, March 21, 2006 2:07 PM
To: mickey.martin@alcatel.com; php-db@lists.php.net
Subject: RE: [PHP-DB] help with file downloads from MySQL

If you load the data into the field with addslashes, have you tried
stripslashes on the way out?

Bastien


>From: "Mickey Martin" <Mickey.Martin@alcatel.com>
>To: php-db@lists.php.net
>Subject: [PHP-DB] help with file downloads from MySQL
>Date: Tue, 21 Mar 2006 12:55:56 -0600
>
>Every time I try to download a file from MySQL it cannot be opened.
>Using HexEdit, I noticed that all of the files are getting 0a added to
>the beginning of them (happens with all browsers).
>
>I can look at the files with MySQL Query Browser and they don't have
>the 0a.
>Using php 4.3.11, Solaris 8, apache 2.0.54, MySQL 4.1.11.
>
>Here's what I'm using:
>mysql_select_db($database_ctnwww, $ctnwww); $query_Attachment =
>sprintf("SELECT bin_data, filetype, filename, filesize FROM IssueAttach
>WHERE id_files=%s", $_GET['id_files']); $Attachment =
>mysql_query($query_Attachment, $ctnwww) or die(mysql_error());
>$row_Attachment = mysql_fetch_array($Attachment);
>
> $data = $row_Attachment['bin_data'];
> $name = $row_Attachment['filename'];
> $size = $row_Attachment['filesize'];
> $type = $row_Attachment['filetype'];
>
> header("Content-type: $type");
> header("Content-length: $size");
> header("Content-Disposition: attachment; filename=$name");
> header("Content-Description: PHP Generated Data");
> echo $data;
>
>Thanks in advance,
>Mickey
>
>--
>PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit:
>http://www.php.net/unsub.php
>

Mickey Martin

2006-03-21, 9:58 pm

Here's the code I'm using to upload if it helps:

<?php
if ($action == "upload") {
include "open_db.inc";

if (isset($binFile) && $binFile != "none") {
$data = addslashes(fread(fopen($binFile, "rb"), filesize($binFile)));
$strDescription = addslashes(nl2br($txtDescription));
$sql = "INSERT INTO tbl_Files ";
$sql .= "(description, bin_data, filename, filesize, filetype) ";
$sql .= "VALUES ('$strDescription', '$data', ";
$sql .= "'$binFile_name', '$binFile_size', '$binFile_type')";
$result = mysql_query($sql, $db);
mysql_free_result($result);
echo "The new file was successfully added to the database.<br><br>";
echo "<a href='main.php'>Continue</a>";
}
mysql_close();

} else {
?>



-----Original Message-----
From: Bastien Koert [mailto:bastien_k@hotmail.com]
Sent: Tuesday, March 21, 2006 2:07 PM
To: mickey.martin@alcatel.com; php-db@lists.php.net
Subject: RE: [PHP-DB] help with file downloads from MySQL

If you load the data into the field with addslashes, have you tried
stripslashes on the way out?

Bastien


>From: "Mickey Martin" <Mickey.Martin@alcatel.com>
>To: php-db@lists.php.net
>Subject: [PHP-DB] help with file downloads from MySQL
>Date: Tue, 21 Mar 2006 12:55:56 -0600
>
>Every time I try to download a file from MySQL it cannot be opened.
>Using HexEdit, I noticed that all of the files are getting 0a added to
>the beginning of them (happens with all browsers).
>
>I can look at the files with MySQL Query Browser and they don't have
>the 0a.
>Using php 4.3.11, Solaris 8, apache 2.0.54, MySQL 4.1.11.
>
>Here's what I'm using:
>mysql_select_db($database_ctnwww, $ctnwww); $query_Attachment =
>sprintf("SELECT bin_data, filetype, filename, filesize FROM IssueAttach
>WHERE id_files=%s", $_GET['id_files']); $Attachment =
>mysql_query($query_Attachment, $ctnwww) or die(mysql_error());
>$row_Attachment = mysql_fetch_array($Attachment);
>
> $data = $row_Attachment['bin_data'];
> $name = $row_Attachment['filename'];
> $size = $row_Attachment['filesize'];
> $type = $row_Attachment['filetype'];
>
> header("Content-type: $type");
> header("Content-length: $size");
> header("Content-Disposition: attachment; filename=$name");
> header("Content-Description: PHP Generated Data");
> echo $data;
>
>Thanks in advance,
>Mickey
>
>--
>PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit:
>http://www.php.net/unsub.php
>

Mickey Martin

2006-03-21, 9:58 pm

I tried purposely corrupting the file by adding blank spaces at the
beginning of the echo:
echo " ",$data;

The 0a was put in at the beginning again, followed by the spaces and then
the file.

Mickey


-----Original Message-----
From: Bastien Koert [mailto:bastien_k@hotmail.com]
Sent: Tuesday, March 21, 2006 2:07 PM
To: mickey.martin@alcatel.com; php-db@lists.php.net
Subject: RE: [PHP-DB] help with file downloads from MySQL

If you load the data into the field with addslashes, have you tried
stripslashes on the way out?

Bastien


>From: "Mickey Martin" <Mickey.Martin@alcatel.com>
>To: php-db@lists.php.net
>Subject: [PHP-DB] help with file downloads from MySQL
>Date: Tue, 21 Mar 2006 12:55:56 -0600
>
>Every time I try to download a file from MySQL it cannot be opened.
>Using HexEdit, I noticed that all of the files are getting 0a added to
>the beginning of them (happens with all browsers).
>
>I can look at the files with MySQL Query Browser and they don't have
>the 0a.
>Using php 4.3.11, Solaris 8, apache 2.0.54, MySQL 4.1.11.
>
>Here's what I'm using:
>mysql_select_db($database_ctnwww, $ctnwww); $query_Attachment =
>sprintf("SELECT bin_data, filetype, filename, filesize FROM IssueAttach
>WHERE id_files=%s", $_GET['id_files']); $Attachment =
>mysql_query($query_Attachment, $ctnwww) or die(mysql_error());
>$row_Attachment = mysql_fetch_array($Attachment);
>
> $data = $row_Attachment['bin_data'];
> $name = $row_Attachment['filename'];
> $size = $row_Attachment['filesize'];
> $type = $row_Attachment['filetype'];
>
> header("Content-type: $type");
> header("Content-length: $size");
> header("Content-Disposition: attachment; filename=$name");
> header("Content-Description: PHP Generated Data");
> echo $data;
>
>Thanks in advance,
>Mickey
>
>--
>PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit:
>http://www.php.net/unsub.php
>

Giff Hammar

2006-03-21, 9:58 pm

Can you use something like this (I haven't tried it)?

$search = '/^0a/'; // Looks at the beginning of the stream for 0a
$replace = ""; // Replace with this
$limit = 1; // How many you want to do
$new_file = preg_replace($search, $replace, $old_file, $limit);

Giff

-----Original Message-----
From: Mickey Martin [mailto:Mickey.Martin@alcatel.com]
Sent: Tuesday, March 21, 2006 4:05 PM
To: 'Bastien Koert'; php-db@lists.php.net
Subject: RE: [PHP-DB] help with file downloads from MySQL

I tried purposely corrupting the file by adding blank spaces at the
beginning of the echo:
echo " ",$data;

The 0a was put in at the beginning again, followed by the spaces and then
the file.

Mickey


-----Original Message-----
From: Bastien Koert [mailto:bastien_k@hotmail.com]
Sent: Tuesday, March 21, 2006 2:07 PM
To: mickey.martin@alcatel.com; php-db@lists.php.net
Subject: RE: [PHP-DB] help with file downloads from MySQL

If you load the data into the field with addslashes, have you tried
stripslashes on the way out?

Bastien


>From: "Mickey Martin" <Mickey.Martin@alcatel.com>
>To: php-db@lists.php.net
>Subject: [PHP-DB] help with file downloads from MySQL
>Date: Tue, 21 Mar 2006 12:55:56 -0600
>
>Every time I try to download a file from MySQL it cannot be opened.
>Using HexEdit, I noticed that all of the files are getting 0a added to
>the beginning of them (happens with all browsers).
>
>I can look at the files with MySQL Query Browser and they don't have
>the 0a.
>Using php 4.3.11, Solaris 8, apache 2.0.54, MySQL 4.1.11.
>
>Here's what I'm using:
>mysql_select_db($database_ctnwww, $ctnwww); $query_Attachment =
>sprintf("SELECT bin_data, filetype, filename, filesize FROM IssueAttach
>WHERE id_files=%s", $_GET['id_files']); $Attachment =
>mysql_query($query_Attachment, $ctnwww) or die(mysql_error());
>$row_Attachment = mysql_fetch_array($Attachment);
>
> $data = $row_Attachment['bin_data'];
> $name = $row_Attachment['filename'];
> $size = $row_Attachment['filesize'];
> $type = $row_Attachment['filetype'];
>
> header("Content-type: $type");
> header("Content-length: $size");
> header("Content-Disposition: attachment; filename=$name");
> header("Content-Description: PHP Generated Data");
> echo $data;
>
>Thanks in advance,
>Mickey
>
>--
>PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit:
>http://www.php.net/unsub.php
>


--
PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit:
http://www.php.net/unsub.php

Mickey Martin

2006-03-22, 6:57 pm

From what I can tell, the 0a is not in the file, but is being inserted
either with the echo or by the browser when it receives the file. Does
anyone know if a proxy server would cause this? There shouldn't be one
involved, but I am going to contact my IT department to find out how it is
configured today.

Thanks,
Mickey

-----Original Message-----
From: Giff Hammar [mailto:ghammar@certifiedparts.com]
Sent: Tuesday, March 21, 2006 3:50 PM
To: 'Mickey Martin'; 'Bastien Koert'; php-db@lists.php.net
Subject: RE: [PHP-DB] help with file downloads from MySQL

Can you use something like this (I haven't tried it)?

$search = '/^0a/'; // Looks at the beginning of the stream for 0a $replace =
""; // Replace with this $limit = 1; // How many you want to do $new_file =
preg_replace($search, $replace, $old_file, $limit);

Giff

-----Original Message-----
From: Mickey Martin [mailto:Mickey.Martin@alcatel.com]
Sent: Tuesday, March 21, 2006 4:05 PM
To: 'Bastien Koert'; php-db@lists.php.net
Subject: RE: [PHP-DB] help with file downloads from MySQL

I tried purposely corrupting the file by adding blank spaces at the
beginning of the echo:
echo " ",$data;

The 0a was put in at the beginning again, followed by the spaces and then
the file.

Mickey


-----Original Message-----
From: Bastien Koert [mailto:bastien_k@hotmail.com]
Sent: Tuesday, March 21, 2006 2:07 PM
To: mickey.martin@alcatel.com; php-db@lists.php.net
Subject: RE: [PHP-DB] help with file downloads from MySQL

If you load the data into the field with addslashes, have you tried
stripslashes on the way out?

Bastien


>From: "Mickey Martin" <Mickey.Martin@alcatel.com>
>To: php-db@lists.php.net
>Subject: [PHP-DB] help with file downloads from MySQL
>Date: Tue, 21 Mar 2006 12:55:56 -0600
>
>Every time I try to download a file from MySQL it cannot be opened.
>Using HexEdit, I noticed that all of the files are getting 0a added to
>the beginning of them (happens with all browsers).
>
>I can look at the files with MySQL Query Browser and they don't have
>the 0a.
>Using php 4.3.11, Solaris 8, apache 2.0.54, MySQL 4.1.11.
>
>Here's what I'm using:
>mysql_select_db($database_ctnwww, $ctnwww); $query_Attachment =
>sprintf("SELECT bin_data, filetype, filename, filesize FROM IssueAttach
>WHERE id_files=%s", $_GET['id_files']); $Attachment =
>mysql_query($query_Attachment, $ctnwww) or die(mysql_error());
>$row_Attachment = mysql_fetch_array($Attachment);
>
> $data = $row_Attachment['bin_data'];
> $name = $row_Attachment['filename'];
> $size = $row_Attachment['filesize'];
> $type = $row_Attachment['filetype'];
>
> header("Content-type: $type");
> header("Content-length: $size");
> header("Content-Disposition: attachment; filename=$name");
> header("Content-Description: PHP Generated Data");
> echo $data;
>
>Thanks in advance,
>Mickey
>
>--
>PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit:
>http://www.php.net/unsub.php
>


--
PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit:
http://www.php.net/unsub.php
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com