I don't think your issue was IIS, but I understand your need to move on. Eventpix and every other witango site we hosted was with IIS on Windows 2003 web edition and witango server 5.5. Your issue sounds like an issue of content-length.
On 3/30/2011 6:05 AM, WebDude wrote: > Well folks, > I never did get this to work. I tried everything and could never get a > jpg or gif that wasn't corrupted somehow. I even compared file sizes > and they were exactly the same from the original. I went as far as > thinking that the read function was corrupting the file so I created a > read, loaded a variable and then wrote that variable to a different > directory to see if the jpg would corrupt and guess what?... that > worked fine... in other words, this does not seem to be a Witango > problem because a can read and write without any corruption > whatsoever. It appears to be an IIS problem. All of these were tested > on MAC and PC using IE and Firefox... none of them worked. > So I decided to bite the bullet and I created a directory structure > and changed the mime types in those directories in IIS for gif and jpg > to x-application/attachment and it works flawlessly for both gifs and > jpgs. Oh well. Guess I'll have to update the images in 2 places rather > then one. Not a big deal... there are only about 3000 images. I > appreciate the help anyway. I have done header rewrites in the past > for purging cache and such and never had a problem, I just couldn't > get this to work and the amount of time I was spending on this for the > client was a bit beyond what the client was going to pay. Here are the > 4 header rewrites that I tried to no avail, if anyone is interested... > <@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><@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"> > <@purgeresults><@assign local$httpHeader 'HTTP/1.0 200 > OK<@crlf>Content-Type: image/jpeg; filename="<@VAR > filename>"<@CRLF>Content-Disposition: attachment; filename="<@VAR > filename>"<@CRLF><@CRLF>'><@var local$FileData encoding=none> > <@ASSIGN httpHeader VALUE="HTTP/1.0 200 OK<@crlf>MIME-Version: > 1.0<@crlf>Content-Type: image/jpeg<@CRLF>Content-Disposition: > attachment; filename=<@VAR filename><@CRLF><@CRLF>"><@var > local$FileData encoding=none> > Thanks again! > > ------------------------------------------------------------------------ > *From:* Robert Garcia [mailto:[email protected]] > *Sent:* Wednesday, March 30, 2011 1:18 AM > *To:* [email protected] > *Subject:* Re: Witango-Talk: Forcing jpg Download > > 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 >> [email protected] - 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:[email protected]] >>>> Sent: Tuesday, March 29, 2011 1:57 PM >>>> To: [email protected] <mailto:[email protected]> >>>> Subject: RE: Witango-Talk: Forcing jpg Download >>>> >>>> Yes - you have that correct. >>>> >>>> -----Original Message----- >>>> From: WebDude [mailto:[email protected]] >>>> Sent: Tuesday, March 29, 2011 2:58 PM >>>> To: [email protected] <mailto:[email protected]> >>>> 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:[email protected]] >>>> Sent: Tuesday, March 29, 2011 1:28 PM >>>> To: [email protected] <mailto:[email protected]> >>>> 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:[email protected]] >>>>> Sent: Tuesday, March 29, 2011 1:49 PM >>>>> To: [email protected] <mailto:[email protected]> >>>>> Subject: RE: Witango-Talk: Forcing jpg Download >>>>> >>>>> <@COLUMN "images.LargerImage">  is the name of the file. >>>>> >>>>> >>>>> >>>>> >>>>> -----Original Message----- >>>>> From: Robert Shubert [mailto:[email protected]] >>>>> Sent: Tuesday, March 29, 2011 12:06 PM >>>>> To: [email protected] <mailto:[email protected]> >>>>> 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:[email protected]] >>>>> Sent: Tuesday, March 29, 2011 12:45 PM >>>>> To: [email protected] <mailto:[email protected]> >>>>> 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 >>>>> [email protected] <mailto:[email protected]> with >>>>> "unsubscribe witango-talk" in the body. >>>>> >>>>> >>>>> >>>>> ---------------------------------------- >>>>> >>>>> To unsubscribe from this list, please send an email to >>>>> [email protected] <mailto:[email protected]> with >>>>> "unsubscribe witango-talk" in the body. >>>>> >>>>> >>>>> >>>>> ---------------------------------------- >>>>> >>>>> To unsubscribe from this list, please send an email to >>>> [email protected] <mailto:[email protected]> with >>>> "unsubscribe witango-talk" in the body. >>>>> >>>>> >>>>> >>>>> ---------------------------------------- >>>>> >>>>> To unsubscribe from this list, please send an email to >>>> [email protected] <mailto:[email protected]> 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 >>>> [email protected] <mailto:[email protected]> - http://bighead.net/ >>>> >>>> >>>> >>>> >>>> ---------------------------------------- >>>> >>>> To unsubscribe from this list, please send an email to >>>> [email protected] <mailto:[email protected]> >>>> with "unsubscribe witango-talk" in the body. >>>> >>>> >>>> >>>> ---------------------------------------- >>>> >>>> To unsubscribe from this list, please send an email to >>>> [email protected] <mailto:[email protected]> >>>> with "unsubscribe witango-talk" in the body. >>>> >>>> >>>> >>>> ---------------------------------------- >>>> >>>> To unsubscribe from this list, please send an email to >>>> [email protected] <mailto:[email protected]> >>>> with "unsubscribe witango-talk" in the body. >>>> >>>> >>>> >>>> ---------------------------------------- >>>> >>>> To unsubscribe from this list, please send an email to >>>> [email protected] <mailto:[email protected]> with >>>> "unsubscribe witango-talk" in the body. >>>> >>>> >>> >>> Ben Johansen >>> http://www.webspinr.com >>> [email protected] <mailto:[email protected]> >>> Phone: 360-597-3372 >>> Mobile: 360-600-7775 >>> >>> >>> >>> >>> ------------------------------------------------------------------------ >>> To unsubscribe from this list, please send an email to >>> [email protected] <mailto:[email protected]> with "unsubscribe >>> witango-talk" in the body. >> >> >> ------------------------------------------------------------------------ >> To unsubscribe from this list, please send an email to >> [email protected] <mailto:[email protected]> 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 > [email protected] -http://bighead.net/ > > > ------------------------------------------------------------------------ > To unsubscribe from this list, please send an email to > [email protected] <mailto:[email protected]> with "unsubscribe > witango-talk" in the body. > ------------------------------------------------------------------------ > To unsubscribe from this list, please send an email to > [email protected] <mailto:[email protected]> 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 [email protected] - http://bighead.net/ ---------------------------------------- To unsubscribe from this list, please send an email to [email protected] with "unsubscribe witango-talk" in the body.
