I realized I didn't explicitly answer your question: I can upload any file type into the db, and download it to a client. The only restriction is that the file extension be in the mime type table, a portion of which is below:
id type extension 38 video/quicktime .mov 37 video/mpeg .mpg 36 text/xml .xml 35 text/tab-separated-values .tsv 34 text/sgml .sgm 33 text/rtf .rtf 32 text/richtext .rtx >Have you done this with __PDF__ files stored in __MSSQL__? If so, how >are you loading the files into the db? > >There is more to this issue than just how to set the HTTP header for >display of pdf files. I can read the file contents and display as a >pdf; it's the database piece that causes a problem. I suspect Bengt is >running into the same issues. > >Thanks. j > > >> -----Original Message----- >> From: Bill Conlon [mailto:[EMAIL PROTECTED] >> Sent: Wednesday, September 17, 2003 2:41 PM >> To: [EMAIL PROTECTED] >> Subject: RE: Witango-Talk: PDF stored in db? >> >> >> Here's what works for me: >> >> 1. Query my db (three tables for mime type, media meta data, and the >> media data itself -- but you could put this into one table) >> >> 2. Set up the request scope variables >> <@ROWS> >> <@ASSIGN NAME="type" SCOPE="request" VALUE=<@COLUMN >> "mime.type">> <@ASSIGN NAME="date" SCOPE="request" VALUE=<@COLUMN >> "media_description.date_modified">> >> <@ASSIGN NAME="size" SCOPE="request" VALUE=<@COLUMN >> "media.size">> <@ASSIGN NAME="filename" SCOPE="request" >> VALUE=<@COLUMN "media.filename">> <@ASSIGN NAME="file" >> SCOPE="request" VALUE=<@COLUMN "media.data">> </@ROWS> >> >> 3. Set up the HTTP header >> <@PURGERESULTS><@assign name="encodeResults" scope="request" >> value="false"><@ASSIGN NAME="httpHeader" SCOPE="request" >> encoding="none" >> VALUE="HTTP/1.1 200 OK<@CRLF>Server: Apache >> 2.0.046<@CRLF>Accept-Ranges: >> bytes<@CRLF>Content-Type: @@request$type<@CRLF>Content-Disposition: >> inline; filename=@@request$filename<@CRLF>Last-Modified: <@VAR >> NAME="date" scope="request" format="datetime"><@CRLF>Content-Length: >> @@request$size<@CRLF><@CRLF>"><@VAR NAME="file" SCOPE="request" >> ENCODING="none"> >> >> >Hiya Bengt! >> > >> >1. Check the binary data in your blob against your original >> file. How >> >are you putting the PDF in? >> > >> >2. Check the pdf binary data that is displayed against the >> binary data >> >in the original. >> > >> >I've still not gotten this to work properly, due to a null character >> >used in the PDF format. That characters always truncated the data >> >either at upload or at read; I haven't found a workaround >> yet. Other >> >folks said they had gotten it working, but they were either >> doing image >> >files rather than PDF, or were not on MSSQL. (I had to drop >> the issue >> >when I hadn't managed to resolve it after several days.) >> > >> >If you can give me more info about how your process works, I'll pull >> >the pertinent info I've collected and forward it. >> > >> >Good luck! >> >jamileh >> > >> > >> >> -----Original Message----- >> >> From: Bengt Bredin [mailto:[EMAIL PROTECTED] >> >> Sent: Wednesday, September 17, 2003 9:28 AM >> >> To: [EMAIL PROTECTED] >> >> Subject: SV: Witango-Talk: PDF stored in db? >> >> >> >> >> >> >> >> Hi all ! >> >> >> >> I have tried out this example from Troy and Scott but can't >> >> get it to work. It's probably some misunderstanding from me, >> >> but I try to get some help anyway. So I pull out my blob, a >> >> pdf file from the db (MSSQL) and use just a test taf to do this: >> >> >> >> <@ASSIGN NAME="filedata" SCOPE="Local" >> >> VALUE="@@request$resultset[1,data]"> >> >> >> >> <@EXCLUDE> >> >> <@ASSIGN NAME=ENCODERESULTS VALUE=FALSE SCOPE=LOCAL> <@ASSIGN >> >> NAME=HttpHeader SCOPE=LOCAL >> >> VALUE="Content-type: application/pdf<@CRLF><@SETCOOKIES><@CRLF>"> >> >> </@EXCLUDE><@var request$filedata ENCODING=NONE> >> >> >> >> Now I would like Adobe reader to start inside my browser and >> >> show me the pdf, but instead I get: Client Error The >> >> response received from the application server is invalid. On >> >> some occasions it shows the pdf binary data instead. >> >> >> >> Hope for better knowledge after San Diego trip >> >> Cheers... >> >> Bengt Bredin, [EMAIL PROTECTED] >> >> Sweden >> >> >> >> >> >> >> >> >> >> Great work Troy, >> >> >> >> Something to add, that I discovered the hard way, is that >> >> some versions of the Adobe Plug-in for PDF may not initialize >> >> properly because the plug-in needs to know the size of the >> >> document before hand. >> >> >> >> So you might want to add "Content-Length:" to the HTTP >> >> Response header, something like: >> >> >> >> <@ASSIGN NAME=ENCODERESULTS VALUE=FALSE SCOPE=LOCAL> <@ASSIGN >> >> NAME=HttpHeader SCOPE=LOCAL VALUE="Content-type: >> >> application/pdf<@CRLF>Content-Length: <@LENGTH STR='<@COLUMN >> >> <@DQ>articles.art_blob<@DQ> >> >> ENCODING=NONE>'><@CRLF><@SETCOOKIES><@CRLF>"><@COLUMN >> >> "articles.art_blob" >> >> ENCODING=NONE> >> >> >> >> Of course it might be more efficent to capture the <@LENGTH> >> >> on the upload and store it a separate field next to the >> PDF content. >> >> >> >> Hope this helps. Cheers.... >> >> >> >> Scott Cadillac, >> >> Witango.org - http://witango.org >> >> 403-281-6090 - [EMAIL PROTECTED] >> >> -- >> >> Information for the Witango Developer Community >> >> --------------------- >> >> >> >> XML-Extranet - http://xmlx.ca >> >> 403-281-6090 - [EMAIL PROTECTED] >> >> -- >> >> Well-formed Development (for hire) >> >> --------------------- >> >> >> >> >> >> > -----Original Message----- >> >> > From: Troy Sosamon [mailto:[EMAIL PROTECTED] >> >> > Sent: Wednesday, September 03, 2003 10:59 AM >> >> > To: [EMAIL PROTECTED] >> >> > Subject: RE: Witango-Talk: PDF stored in db? >> >> > >> >> > >> >> > Here is the trickey part that you need. >> >> > Use a javascrip and open a new window and call a search >> action that >> >> > returns a blob and use this code: >> >> > >> >> > <@EXCLUDE> >> >> > <@ASSIGN NAME=ENCODERESULTS VALUE=FALSE SCOPE=LOCAL> <@ASSIGN >> >> > NAME=HttpHeader SCOPE=LOCAL >> >> > VALUE="Content-type: >> >> > application/pdf<@CRLF><@SETCOOKIES><@CRLF>"> >> >> > </@EXCLUDE><@COLUMN "articles.art_blob" ENCODING=NONE> >> >> > >> >> > >> >> > <@comment>other content types-- VALUE="Content-type: image/jpeg, >> >> > text/html </@comment> >> >> > >> >> > >> >> > Troy >> >> > >> >> > >> >> > -----Original Message----- >> >> > From: Troy Sosamon [mailto:[EMAIL PROTECTED] >> >> > Sent: Wednesday, September 03, 2003 10:32 AM >> >> > To: [EMAIL PROTECTED] >> >> > Subject: RE: Witango-Talk: PDF stored in db? >> >> > >> >> > >> >> > I have done it using R:tango, IIS5 and W2k. R:tango is >> Tango2000 >> >> > and an R:base database. >> >> > >> >> > I am not sure about how your DB handles the blobs, but >> to load the >> >> > files, I upload the the file to a temp file on the >> server and then >> >> > do a directdbms >> >> > command to put the file into the database. >> >> > Pulling the pdf out if you write it to a temp file on the >> >> > server and link to >> >> > that file it is very easy. >> >> > It is a little trickier, but can be done where you pull the >> >> > file and send it >> >> > directly to the browser w/o needing to put it in a file on >> >> the server. >> >> > >> >> > Troy Sosamon >> >> > Denver, Co. >> >> > >> >> > >> >> > -----Original Message----- >> >> > From: Wilcox, Jamileh (HSC) [mailto:[EMAIL PROTECTED] >> >> > Sent: Wednesday, September 03, 2003 10:08 AM >> >> > To: [EMAIL PROTECTED] >> >> > Subject: Witango-Talk: PDF stored in db? >> >> > >> >> > >> >> > Tango2000, W2K server, IIS5, SQL2K >> >> > >> >> > I'm building an application to search and display lots of PDF >> >> > files. My preference would be to store the files in the >> database, >> >> > rather than try >> >> > to organize and keep track of all the separate files. Does >> >> > anyone know >> >> > if this method will work with PDF files? If so, has >> anyone done a >> >> > similar app? I'm having problems getting the files loaded & >> >> > displayed - >> >> > I'm not sure if I'm doing it wrong, or if it's just not >> >> going to work. >> >> > >> >> > Thanks for any suggestions! >> >> > >> >> > jamileh >> >> > >> >> > >> >> > ______________________________________________________________ >> >> > __________ >> >> > TO UNSUBSCRIBE: Go to http://www.witango.com/maillist.taf >> >> > >> >> > ______________________________________________________________ >> >> > __________ >> >> > TO UNSUBSCRIBE: Go to http://www.witango.com/maillist.taf >> >> > >> >> > ______________________________________________________________ >> >> > __________ >> >> > TO UNSUBSCRIBE: Go to http://www.witango.com/maillist.taf >> >> > >> >> >> >> ______________________________________________________________ >> >> __________ >> >> TO UNSUBSCRIBE: Go to http://www.witango.com/maillist.taf >> >> >> >> ______________________________________________________________ >> >> __________ >> >> TO UNSUBSCRIBE: Go to http://www.witango.com/maillist.taf >> >> >> >_____________________________________________________________ >> __________ >> >_ >> >TO UNSUBSCRIBE: Go to http://www.witango.com/maillist.taf >> > >> >> >> Bill Conlon >> >> To the Point >> 345 California Avenue Suite 2 >> Palo Alto, CA 94306 >> >> office: 650.327.2175 >> fax: 650.329.8335 >> mobile: 650.906.9929 >> e-mail: mailto:[EMAIL PROTECTED] >> web: http://www.tothept.com >> >> >> ______________________________________________________________ >> __________ >> TO UNSUBSCRIBE: Go to http://www.witango.com/maillist.taf >> >________________________________________________________________________ >TO UNSUBSCRIBE: Go to http://www.witango.com/maillist.taf > Bill Conlon To the Point 345 California Avenue Suite 2 Palo Alto, CA 94306 office: 650.327.2175 fax: 650.329.8335 mobile: 650.906.9929 e-mail: mailto:[EMAIL PROTECTED] web: http://www.tothept.com ________________________________________________________________________ TO UNSUBSCRIBE: Go to http://www.witango.com/maillist.taf