So I found a taf from one of the more recent applications I had done in witango.
First, I have a data action that gets data from db, this is in the results for that action: <@assign local$image <@column "hiRez.image" encoding=none>> <@assign local$cLength <@column "hiRez.data_size" encoding=none>> Then a results only action to assign header, notice use of <@exclude> to allow nice formatting, but not add anything to the result buffer: <@exclude> <@ifempty <@arg filename>> <@assign local$fileName "image.jpg"> <@else> <@assign local$fileName <@arg fileName>> </@if> <@assign local$httpHeader 'HTTP/1.1 200 OK<@crlf>Server: WiTango Server 4.05.047<@crlf>MIME-Version: 1.0<@crlf>Content-Type: application/download<@crlf>Content-disposition: attachment; filename="<@var local$fileName>"<@crlf>Content-length: <@var local$cLength><@crlf>Expires: -1<@crlf><@crlf>'> <@assign local$encodehttpresponse "False"> </@exclude> And then a final results only results page for the image data: <@purgeresults><@var local$image encoding=none> A couple of notes. 1. I am aware of deprecation of local scope, this is not in service anymore. 2. Before we started storing the content-length in the DB, we would get it like this: <@assign local$cLength <@length <@column "hiRez.image" encoding=none>>> This worked reliably, this was not for eventpix, but for a large image library website, stock photography and such. The only issue with the above was that sometimes @length would be 1 byte off, and cause an issue. On 3/29/2011 4:18 PM, Robert Garcia wrote: > Also Disposition inline will not download, must be attachment. > > -- > 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 <http://bit.ly/sigsprw> > > On Tuesday, March 29, 2011 at 3:49 PM, Ben Johansen wrote: > >> There alway needs to be 2 CRLF's after header info. So in your first >> example you only have one and the 2nd you have the extra <@purge. >> >> also, I don't there there is a mime type called "application/jpeg" it >> should be "image/jpeg" >> >> here is what I did for jpegs >> >> <@purgeresults><@assign request$httpHeader 'HTTP/1.1 200 >> OK<@crlf>Content-Type: image/jpeg; >> filename="mithumb.jpg"<@CRLF>Content-Disposition: inline; >> filename="mithumb.jpg"<@CRLF><@CRLF>'><@var >> request$imagedataencoding=none> >> >> >> >> On Mar 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 <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto:lists...@witango.com> with >>>> "unsubscribe witango-talk" in the body. >>>> >>>> >>>> >>>> ---------------------------------------- >>>> >>>> To unsubscribe from this list, please send an email to >>>> lists...@witango.com <mailto:lists...@witango.com> with >>>> "unsubscribe witango-talk" in the body. >>>> >>>> >>>> >>>> ---------------------------------------- >>>> >>>> To unsubscribe from this list, please send an email to >>> lists...@witango.com <mailto:lists...@witango.com> with "unsubscribe >>> witango-talk" in the body. >>>> >>>> >>>> >>>> ---------------------------------------- >>>> >>>> To unsubscribe from this list, please send an email to >>> lists...@witango.com <mailto: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 <mailto:rgar...@bighead.net> - http://bighead.net/ >>> >>> >>> >>> >>> ---------------------------------------- >>> >>> To unsubscribe from this list, please send an email to >>> lists...@witango.com <mailto:lists...@witango.com> >>> with "unsubscribe witango-talk" in the body. >>> >>> >>> >>> ---------------------------------------- >>> >>> To unsubscribe from this list, please send an email to >>> lists...@witango.com <mailto:lists...@witango.com> >>> with "unsubscribe witango-talk" in the body. >>> >>> >>> >>> ---------------------------------------- >>> >>> To unsubscribe from this list, please send an email to >>> lists...@witango.com <mailto:lists...@witango.com> >>> with "unsubscribe witango-talk" in the body. >>> >>> >>> >>> ---------------------------------------- >>> >>> To unsubscribe from this list, please send an email to >>> lists...@witango.com <mailto:lists...@witango.com> with "unsubscribe >>> witango-talk" in the body. >>> >>> >> >> Ben Johansen >> http://www.webspinr.com >> b...@webspinr.com <mailto:b...@webspinr.com> >> Phone: 360-597-3372 >> Mobile: 360-600-7775 >> >> >> >> >> ------------------------------------------------------------------------ >> To unsubscribe from this list, please send an email to >> lists...@witango.com <mailto:lists...@witango.com> with "unsubscribe >> witango-talk" in the body. > > > ------------------------------------------------------------------------ > To unsubscribe from this list, please send an email to > lists...@witango.com <mailto: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.