473,394 Members | 1,751 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,394 software developers and data experts.

Problem downloading binary data

Hi all

I have this script(download.php) which downloads binary data from a
mysql database.

<?

/* SNIP */

$document=document::singleton();
$doc=$document->get_document($id);

if (is_object($doc)){
die;
}

header("Content-type: $doc[type]");
header("Content-length: $doc[size]");
header("Content-Disposition: attachment; filename=$doc[name]");

echo($doc['content']);

exit;

?>

This is called from another page in the
<a href="download.php?id=4">CLick here to download</a>
fashion.

The problem I am experiencing is that the download stop on 64k and then
the files are obviously corrupted.

I have checked that I do have the correct size in the db and I am giving
the correct size in the Content-length header.

Thanks
Barry
Jan 25 '06 #1
6 1583
Barry wrote:
Hi all

I have this script(download.php) which downloads binary data from a
mysql database.

<?

/* SNIP */

$document=document::singleton();
$doc=$document->get_document($id);

if (is_object($doc)){
die;
}
So if $doc is an object you die?

Is that what you want?
I would expect:
if (is_object($doc)){
echo "\doc is not an object!";
exit;
}

Regards,
Erwin Moller

header("Content-type: $doc[type]");
header("Content-length: $doc[size]");
header("Content-Disposition: attachment; filename=$doc[name]");

echo($doc['content']);

exit;

?>

This is called from another page in the
<a href="download.php?id=4">CLick here to download</a>
fashion.

The problem I am experiencing is that the download stop on 64k and then
the files are obviously corrupted.

I have checked that I do have the correct size in the db and I am giving
the correct size in the Content-length header.

Thanks
Barry


Jan 25 '06 #2
>
if (is_object($doc)){
Now I make the same mistake:
Should be of course:
if (!is_object($doc)){
echo "\doc is not an object!";
exit;
} echo "\doc is not an object!";
exit;
}

Regards,
Erwin Moller

Jan 25 '06 #3
Erwin Moller wrote:
Barry wrote:

Hi all

I have this script(download.php) which downloads binary data from a
mysql database.

<?

/* SNIP */

$document=document::singleton();
$doc=$document->get_document($id);

if (is_object($doc)){
die;
}

So if $doc is an object you die?

Is that what you want?
I would expect:
if (is_object($doc)){
echo "\doc is not an object!";
exit;
}

Regards,
Erwin Moller


Yes I want it to die.
The function returns an error object if it fails.
This means that an error has occured and then I just die.

If the function returns an array, its found the data.

This all works for files less than 64k.
Its only with larger files that the download stops at 64k.
This is weird bahavior, I think it might be some config on the server.

Thanks
Barry
header("Content-type: $doc[type]");
header("Content-length: $doc[size]");
header("Content-Disposition: attachment; filename=$doc[name]");

echo($doc['content']);

exit;

?>

This is called from another page in the
<a href="download.php?id=4">CLick here to download</a>
fashion.

The problem I am experiencing is that the download stop on 64k and then
the files are obviously corrupted.

I have checked that I do have the correct size in the db and I am giving
the correct size in the Content-length header.

Thanks
Barry


Jan 25 '06 #4
Barry wrote:
Erwin Moller wrote:
Barry wrote:

Hi all

I have this script(download.php) which downloads binary data from a
mysql database.

<?

/* SNIP */

$document=document::singleton();
$doc=$document->get_document($id);

if (is_object($doc)){
die;
}

So if $doc is an object you die?

Is that what you want?
I would expect:
if (is_object($doc)){
echo "\doc is not an object!";
exit;
}

Regards,
Erwin Moller


Yes I want it to die.
The function returns an error object if it fails.
This means that an error has occured and then I just die.

If the function returns an array, its found the data.

This all works for files less than 64k.
Its only with larger files that the download stops at 64k.
This is weird bahavior, I think it might be some config on the server.


Hmm, ok.

Strange.
Are you sure your document-singleton is actually delivering the right stuff?
I mean: the problem could arise earlier than at the moment of delivery.
And 64K sounds very suspect.

I would check that part first, just spit out :

echo htmlentities($doc['content']);

Well, that is all I can think of.

Good luck.

Regards,
Erwin Moller

Thanks
Barry
header("Content-type: $doc[type]");
header("Content-length: $doc[size]");
header("Content-Disposition: attachment; filename=$doc[name]");

echo($doc['content']);

exit;

?>

This is called from another page in the
<a href="download.php?id=4">CLick here to download</a>
fashion.

The problem I am experiencing is that the download stop on 64k and then
the files are obviously corrupted.

I have checked that I do have the correct size in the db and I am giving
the correct size in the Content-length header.

Thanks
Barry



Jan 25 '06 #5
Erwin Moller wrote:
Barry wrote:

Erwin Moller wrote:
Barry wrote:

Hi all

I have this script(download.php) which downloads binary data from a
mysql database.

<?

/* SNIP */

$document=document::singleton();
$doc=$document->get_document($id);

if (is_object($doc)){
die;
}
So if $doc is an object you die?

Is that what you want?
I would expect:
if (is_object($doc)){
echo "\doc is not an object!";
exit;
}

Regards,
Erwin Moller


Yes I want it to die.
The function returns an error object if it fails.
This means that an error has occured and then I just die.

If the function returns an array, its found the data.

This all works for files less than 64k.
Its only with larger files that the download stops at 64k.
This is weird bahavior, I think it might be some config on the server.

Hmm, ok.

Strange.
Are you sure your document-singleton is actually delivering the right stuff?
I mean: the problem could arise earlier than at the moment of delivery.
And 64K sounds very suspect.

I would check that part first, just spit out :

echo htmlentities($doc['content']);

Well, that is all I can think of.

Good luck.

Regards,
Erwin Moller


thanks for the help.
yes, I get the correct data.
when I dump the array all is there.

also, docs and images below 64k work fine.

strange one this.
Thanks
Barry

header("Content-type: $doc[type]");
header("Content-length: $doc[size]");
header("Content-Disposition: attachment; filename=$doc[name]");

echo($doc['content']);

exit;

?>

This is called from another page in the
<a href="download.php?id=4">CLick here to download</a>
fashion.

The problem I am experiencing is that the download stop on 64k and then
the files are obviously corrupted.

I have checked that I do have the correct size in the db and I am giving
the correct size in the Content-length header.

Thanks
Barry

Jan 25 '06 #6
I have seen cutoff problems in other posts in trying to use fread() with
chunks larger than about 8K.
is that what you are using in your method?

"Barry" <b@b.com> wrote in message news:dr**********@ctb-nnrp2.saix.net...
Erwin Moller wrote:
Barry wrote:

Erwin Moller wrote:

Barry wrote:

>Hi all
>
>I have this script(download.php) which downloads binary data from a
>mysql database.
>
><?
>
>/* SNIP */
>
>$document=document::singleton();
>$doc=$document->get_document($id);
>
>if (is_object($doc)){
>die;
>}
So if $doc is an object you die?

Is that what you want?
I would expect:
if (is_object($doc)){
echo "\doc is not an object!";
exit;
}

Regards,
Erwin Moller

Yes I want it to die.
The function returns an error object if it fails.
This means that an error has occured and then I just die.

If the function returns an array, its found the data.

This all works for files less than 64k.
Its only with larger files that the download stops at 64k.
This is weird bahavior, I think it might be some config on the server.

Hmm, ok.

Strange.
Are you sure your document-singleton is actually delivering the right
stuff?
I mean: the problem could arise earlier than at the moment of delivery.
And 64K sounds very suspect.

I would check that part first, just spit out :

echo htmlentities($doc['content']);

Well, that is all I can think of.

Good luck.

Regards,
Erwin Moller


thanks for the help.
yes, I get the correct data.
when I dump the array all is there.

also, docs and images below 64k work fine.

strange one this.
Thanks
Barry
>header("Content-type: $doc[type]");
>header("Content-length: $doc[size]");
>header("Content-Disposition: attachment; filename=$doc[name]");
>
>echo($doc['content']);
>
>exit;
>
>?>
>
>This is called from another page in the
><a href="download.php?id=4">CLick here to download</a>
>fashion.
>
>The problem I am experiencing is that the download stop on 64k and then
>the files are obviously corrupted.
>
>I have checked that I do have the correct size in the db and I am
>giving
>the correct size in the Content-length header.
>
>Thanks
>Barry

Feb 12 '06 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Kubaton Lover | last post by:
I'm still having a problem with the following code, but I can better describe the symptoms now. Code: <?php $uri = getenv('REQUEST_URI'); $pieces = explode('/',$uri); $file = $pieces;
1
by: NewFilmFan | last post by:
I use Python 2.3 on Windows XP. I wrote this program: import httplib conn = httplib.HTTPConnection("www.x.net") conn.request("GET", "/x/y.jpg") r1 = conn.getresponse() print r1.status,...
6
by: | last post by:
I am rewriting a C++ application in C#. This file has a combination of Text and Binary data. I used CFile before to read the text. If I hit a certain string that denotes the following data is...
11
by: Abhishek | last post by:
I have a problem transfering files using sockets from pocket pc(.net compact c#) to desktop(not using .net just mfc and sockets 2 API). The socket communication is not a issue and I am able to...
3
by: John R. Delaney | last post by:
I am running in debugging mode after a clean C++ compilation under .NET 2003. In a BIG loop (controlled many levels up in the call stack), I open a file with fopen using the "a" option. Then I write...
1
by: alex23 | last post by:
Hey everyone, I'm trying to install setuptools on a work PC behind an NTLM firewall. I've tried to use APS as recommended but am still unable to have anything other than IE talk through...
15
by: =?ISO-8859-1?Q?J=F8rn?= Dahl-Stamnes | last post by:
Hello folks, I need some help/advice FAST. I have problems with addslashes on my web-servers. After uploading a file, I read the uploaded file, use addslashes on the read data and then insert...
1
by: Muddasir | last post by:
Hello everyone. I am facing problem in downloading .xls file. I generate report and save data in excel sheet on server. and once user click the 'save data in excel format', an excel sheet is...
4
by: Xavier | last post by:
Hi, I try to access to a Bluetooth GPS data-logger with Python. I use pySerial. Sending and receiving little messages (~100 char) works fine. However, when I ask the GPS to dump the trails,...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.