Daniel J. Popowich
dpopowich at mtrsd.k12.ma.us
Tue Jan 13 10:40:53 EST 2004
In most of my mod_python apps if a request comes in for a file that I don't want to handle, let's say an image file, foo.gif, I raise apache.SERVER_RETURN with a value of apache.DECLINED. Apache then handles the request and sends in the header: Content-Type: image/gif However, I now have an app that wants to live in a <Location ...> directive so returning apache.DECLINED doesn't work: apache has no other means of handling the request so it returns a 404 error. My only means of recourse seems to be something like this: if NOT_HANDLING_PAGE: req.write(open(filename).read()) but content_type is not set properly (it appears to default to text/plain), so binary files, like image files, appear as gibberish in a browser. Two questions: 1. What does mod_python/apache do if content_type is not set by a handler? Does it default to text/plain? 2. I'm looking for an intelligent means of setting the content_type. I know I can use mimetypes.guess_type(), but that is based only on the file's extension. Apache does more than that, eg, if 'foo.gif' was named 'foo' apache still determines the content type correctly as image/gif. Is there a way to tap into apache's content_type determination? Thanks, ------------------ Daniel Popowich Network Specialist ------------------------------------- Mohawk Trail Regional School District 24 Ashfield Rd. Shelburne Falls, MA 01370 413.625.0192 x22 -------------------------------------
|