Internet Explorer can go to hell

Posted on June 11, 2008

2


Download a PDF file from the archive through a browser

[Just to get the headers here, I used: “curl -I http://ora.ouls.ox.ac.uk/objects/uuid%3A4af22069-ec0e-4407-b42d-2926c5a6c9ca/datastreams/ATTACHMENT01”%5D

Server Response:
HTTP/1.1 200 OK
content-length: 53760
content-disposition: attachment; filename=”uuid4af22069-ec0e-4407-b42d-2926c5a6c9ca-ATTACHMENT01.doc”
accept-ranges: bytes
last-modified: Wed, 11 Jun 2008 13:54:45 GMT
content-range: 0-53759/53760
etag: 1213192485.0-53760
content-type: application/msword
x-pingback: http://ora.ouls.ox.ac.uk/pingback
Date: Wed, 11 Jun 2008 13:54:45 GMT
Server: CherryPy/3.0.2

  • Firefox (any version, any OS) downloads this and passes it to an external app fine, job done.
  • Safari, same deal.
  • Camino, ditto.
  • Opera, not a problem.
  • Even Internet Explorer 7, downloads it and opens it fine.

But:

Internet Explorer 6 -> Adobe Acrobat says “Error, file not found”

Internet Explorer 5 -> Adobe still says “Error, file not found”

I’ll post up the fix to IE5/6 not being able to download the file properly. It’s all in the response headers, and I’ll let you play spot the difference:

Server Response (works with IE5/6):
HTTP/1.1 200 OK
content-length: 53760
content-disposition: attachment; filename=”uuid4af22069-ec0e-4407-b42d-2926c5a6c9ca-ATTACHMENT01.doc”
accept-ranges: bytes
last-modified: Wed, 11 Jun 2008 13:54:45 GMT
content-range: 0-53759/53760
etag: 1213192485.0-53760
pragma:
content-cache:
content-type: application/msword
x-pingback: http://ora.ouls.ox.ac.uk/pingback
Date: Wed, 11 Jun 2008 13:54:45 GMT
Server: CherryPy/3.0.2

Found it? No?

etag: 1213192485.0-53760
pragma:
content-cache:
content-type: application/msword

That’s right, adding empty fields into the response headers magically fixes the download issue for IE6 and 5. One day, I’ll find an IE engineer and if I do, when I do… well… my bail money will be with my lawyer. in that case.

Posted in: Uncategorized