Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it necessary to set the Content-Length in my response header?

I'm reviewing some legacy code and I've found a bug that causes the response to sit indefinitely.

Here's the basic idea:

Response.Content-Type = "application/octet-stream"
Response.AddHeader("Content-Disposition", "attachment; filename" & someFileName)
Response.AddHeader("Content-Length", someStoredLength)
Response.BinaryWrite(someByteArray)
Response.Flush()
Response.End()

The problem is that someStoredLength is much larger than the actual size of someByteArray, so the client just sits there waiting for the file download while the browser just spins.

I'm contemplating just removing the AddHeader that specifies the content length, because when I do that everything seems to work fine, but I'm worried that I'm not understanding something.

Is it ok for me to remove this AddHeader or should I figure out a better way to deal with this problem?

like image 279
Joseph Avatar asked Sep 11 '09 18:09

Joseph


1 Answers

Change the Content-Length line to the following:

Response.AddHeader("Content-Length", someByteArray.Length.ToString())
like image 171
Stephen Avatar answered Nov 07 '22 07:11

Stephen