Try removing content-length altogether. This is one of the major issues we had, 
and this was probably the biggest reason we went to PHP other than 
text/encoding. If Robert is saying that the header should be put in 
automatically, then great, but it didn't back when. We had the issue that some 
browsers required the content-length, and then on top of that, it must be exact 
to the byte. We found that using varsize or @length from witango would 
sometimes be off by 1 byte. It happened about 1 every few thousand images. So 
this one image would always show broken, due to witango being off by 1 byte in 
length. This would happen on other sites with binary data when we used to store 
PDF files in the db, but it was much more rare. Eventpix was serving millions 
of images, so we saw it more frequently. At the end of the day, the resolution 
was to NOT depend on witango for the content-length. We did this in one of 
several ways. This probably has to do with the fact that witango defaults to 
dealing
 with strings, and not binary data, and that is why in lower level programming 
languages you have methods for determining lengths of binary data vs string 
data. (strlen vs strlenb or length() vs char_length() in mysql)

1. upon retrieval of the data from the db, where the name of the blog field is 
"data", do this:
select length(data) as "content-length", data from table;
and use the "content-length" value from mysql instead of any witango calc on 
the binary data.
2. If retrieving the data from disk, ask the operating system for its length in 
bytes.
3. We were using a desktop application to populate the data, and we found the 
best way was to use a proper binary string length function and we would insert 
into the blog with a field for its length. so we knew we always had the proper 
content-length in the database.

HTH.

PS. here is an interesting discussion on this issue, and why at least before, 
we could not rely on witango for this, because it had no method for length of a 
binary string.

http://bytes.com/topic/php/answers/653733-binary-string-length

--
Robert Garcia
BigHead Technology
15520 Coutelenc Rd
Magalia, Ca 95954
ph: 530.645.4040 x222 fax: 530.645.4040
rgar...@bighead.net - http://bighead.net/
Sent with Sparrow
On Tuesday, March 29, 2011 at 2:54 PM, WebDude wrote:
> I appreciate the help so far. I feel I am 95% there.
>
> I have tried this with these 2 header rewrites (all on one line, of
> course)...
>
> <@purgeresults><@ASSIGN local$httpHeader VALUE="HTTP/1.0 200
> OK<@crlf>MIME-Version: 1.0<@crlf>Content-Type:
> application/jpg<@CRLF>Content-Disposition: attachment; filename=<@VAR
> filename><@CRLF><@USERREFERENCECOOKIE><@CRLF>"><@VAR FileData scope="local">
>
>
>
>
> <@assign name="httpHeader" scope="local" value="HTTP/1.0 200
> OK<@crlf>MIME-Version: 1.0<@crlf>Content-type:
> application/jpg<@crlf>Content-Disposition: attachment; filename=<@VAR
> filename><@crlf>Content-Length: <@VARINFO NAME="FileData"
> size><@crlf><@crlf>"><@purgeresults><@VAR FileData scope="local">
>
> I am assigning the filename from a search and writing the data to FileData
>
> It actually finds the filename and downloads the file. The problem is that
> the file seems to be corrupt. It will not display in a browser and when I
> try to open it in PhotoShop I get the following error (I tried this in
> multiple browsers)....
>
> "Could not open the document because a JPEG marker segment length is too
> short (the file may be truncated or incomplete).
>
> Is there something else I may be missing?
>
> I appreciate the help!
>
>
>
>
> -----Original Message-----
> From: Robert Shubert [mailto:rshub...@tronics.com]
> Sent: Tuesday, March 29, 2011 1:57 PM
> To: Witango-Talk@witango.com
> Subject: RE: Witango-Talk: Forcing jpg Download
>
> Yes - you have that correct.
>
> -----Original Message-----
> From: WebDude [mailto:webd...@cipromo.com]
> Sent: Tuesday, March 29, 2011 2:58 PM
> To: Witango-Talk@witango.com
> Subject: RE: Witango-Talk: Forcing jpg Download
>
> What do you mean by "Then you dump out the contents of the jpeg AFTER the
> header." Do I read the jpg using the Read File Action as in what the other
> Robert suggested? Is that what the <@VAR Request$FileData> is?
>
> Mmmmm... I'll give it a shot...
>
>
>
>
> -----Original Message-----
> From: Robert Garcia [mailto:rgar...@bighead.net]
> Sent: Tuesday, March 29, 2011 1:28 PM
> To: Witango-Talk@witango.com
> Cc: Robert Shubert
> Subject: Re: Witango-Talk: Forcing jpg Download
>
> We have done that many times before in witango. That is the correct header
> you need to use, and attachment is the correct way. However, it looks like
> you are trying to put the contents of the file in the filename part, that
> header just takes the filename, and it should end in JPG or JPEG, or match
> the mime of the content with the extension, or it may not work on all
> browsers. Then you dump out the contents of the jpeg AFTER the header. Here
> is an example I found from a TAF that I know we had working:
>
> <@assign name="httpHeader" scope="request" value="HTTP/1.0 200
> OK<@crlf>MIME-Version: 1.0<@crlf>Content-type:
> application/download<@crlf>Content-Disposition: attachment;
> filename=downloadreport.xls<@crlf>Content-Length: <@length
> @@request$FileData><@crlf><@crlf>"><@purgeresults><@VAR Request$FileData>
>
> It is important to know that you must NOT have ANY returns in this results
> page where you use this code, it should be on one line. We do this in other
> places with JPEGs, but we use image/jpeg for content-type, and a variable
> usually for filename. Content-length is also important, but can be a big
> buggy in witango.
>
> On 3/29/2011 11:09 AM, Robert Shubert wrote:
> > In that case, I think you have the header correct. What you need to do
> > afterwards is use a Read File Action to bring the content of the JPEG
> > into Witango and then simply display it as the response. It's
> > important that you don't get any additional characters (like extra
> > returns or spaces in the result)
> >
> > Robert
> >
> > -----Original Message-----
> > From: WebDude [mailto:webd...@cipromo.com]
> > Sent: Tuesday, March 29, 2011 1:49 PM
> > To: Witango-Talk@witango.com
> > Subject: RE: Witango-Talk: Forcing jpg Download
> >
> > <@COLUMN "images.LargerImage"> is the name of the file.
> >
> >
> >
> >
> > -----Original Message-----
> > From: Robert Shubert [mailto:rshub...@tronics.com]
> > Sent: Tuesday, March 29, 2011 12:06 PM
> > To: Witango-Talk@witango.com
> > Subject: RE: Witango-Talk: Forcing jpg Download
> >
> > What is in the database column<@COLUMN "images.LargerImage">? Is this
> > the name of the image file or the binary JPEG data?
> >
> > Robert
> >
> > -----Original Message-----
> > From: WebDude [mailto:webd...@cipromo.com]
> > Sent: Tuesday, March 29, 2011 12:45 PM
> > To: Witango-Talk@witango.com
> > Subject: Witango-Talk: Forcing jpg Download
> >
> > PHP has a handy header rewrite for forcing a jpg download. I was
> > wondering if anyone has ever done this in Witango. I've been able to
> > get this to work on IIS by changing the directory header, the problem
> > being is that I have 2 sites that reference the same images and one
> > needs to force a download and the other to view the image in a browser
> > (same images in the same directories).
> >
> > I've been dabbling but can't seem to get it to work right. Of course
> > when I add header change to the top of the taf file, it tries to
> > download the taf file itself rather then the jpg file. This is stupid
> > I know, but what is the best way to force a download of a jpg and get
> > it to work? This is what I have so far. Am I missing something
> > fundamental
> in trying to do this?
> >
> > <@purgeresults><@ASSIGN local$httpHeader
> > VALUE="Content-Type:application/jpg<@CRLF>Content-Disposition:
> > attachment, filename='<@COLUMN
> > "images.LargerImage">'<@CRLF>readfile('<@COLUMN
> > "images.LargerImage">')<@CRLF><@USERREFERENCECOOKIE><@CRLF>">
> >
> > Thanks for your thoughts...
> >
> >
> >
> > WebDude
> >
> >
> >
> >
> > ----------------------------------------
> >
> > To unsubscribe from this list, please send an email to
> > lists...@witango.com with "unsubscribe witango-talk" in the body.
> >
> >
> >
> > ----------------------------------------
> >
> > To unsubscribe from this list, please send an email to
> > lists...@witango.com with "unsubscribe witango-talk" in the body.
> >
> >
> >
> > ----------------------------------------
> >
> > To unsubscribe from this list, please send an email to
> lists...@witango.com with "unsubscribe witango-talk" in the body.
> >
> >
> >
> > ----------------------------------------
> >
> > To unsubscribe from this list, please send an email to
> lists...@witango.com with "unsubscribe witango-talk" in the body.
>
> --
> Robert Garcia
> BigHead Technology
> 15520 Coutelenc Rd
> Magalia, Ca 95954
> ph: 530.645.4040 x222 fax: 530.645.4040
> rgar...@bighead.net - http://bighead.net/
>
>
>
>
> ----------------------------------------
>
> To unsubscribe from this list, please send an email to lists...@witango.com
> with "unsubscribe witango-talk" in the body.
>
>
>
> ----------------------------------------
>
> To unsubscribe from this list, please send an email to lists...@witango.com
> with "unsubscribe witango-talk" in the body.
>
>
>
> ----------------------------------------
>
> To unsubscribe from this list, please send an email to lists...@witango.com
> with "unsubscribe witango-talk" in the body.
>
>
>
> ----------------------------------------
>
> To unsubscribe from this list, please send an email to lists...@witango.com 
> with "unsubscribe witango-talk" in the body.
>


----------------------------------------

To unsubscribe from this list, please send an email to lists...@witango.com 
with "unsubscribe witango-talk" in the body.

Reply via email to