[REBOL] Re: cgi binary data xfer...
From: andrew:martin:colenso:school at: 17-Sep-2003 8:53
max wrote:
> Q1: how do I initiate a binary xfer in cgi/html, so that instead of
displaying binary data as a lump of text in the browser, I get a file
transfer dialog.
> Q2: how do I make 'print work like a write/binary so that the read
data actually stays binary...
Hi, max!
Here's what I use in my Wiki script:
MIME: make object! [
Extension_MIME: load %"Extension MIME.txt"
Type?: func [File [file!]] [
select Extension_MIME Extension? File
]
Data: function [File [file!]] [Data] [
Data: read/binary File
print [
"Content-Type:" any [
Type? File
'application/octet-stream
]
newline
]
write-io system/ports/output Data length? Data
Data: none
quit
]
]
View_File: func [Folder [file!] File [file!]] [
File: any [
if exists? Wiki_Files/:Folder/:File [
Wiki_Files/:Folder/:File
]
if exists? Folder/:File [
Folder/:File
]
if exists? File [
File
]
Rebol/script/header/File
]
if not found? find Inline_Extensions extension? File [
print rejoin [
"Content-Disposition: attachment; "
{filename="} form last split-path File #"^""
]
]
MIME/Data File
]
The key part is this line:
write-io system/ports/output Data length? Data
And these lines:
print [
"Content-Type:" any [
Type? File
'application/octet-stream
]
newline
]
I hope that helps!
Andrew J Martin
Attendance Officer &
Information Systems Trouble Shooter
Colenso High School
Arnold Street, Napier.
Tel: 64-6-8310180 ext 826
Fax: 64-6-8336759
http://colenso.net/scripts/Wiki.r?AJM
http://www.colenso.school.nz/
DISCLAIMER: Colenso High School and its Board of Trustees is not responsible (or legally
liable) for materials distributed to or acquired from user e-mail accounts. You can report
any
misuse of an e-mail account to our ICT Manager and the complaint will be investigated.
(Misuse can come in many forms, but can be viewed as any material sent/received that
indicate or suggest pornography, unethical or illegal solicitation, racism, sexism, inappropriate
language and/or other issues described in our Acceptable Use Policy.)
All outgoing messages are certified virus-free by McAfee GroupShield Exchange 5.10.285.0
Phone: +64 6 843 5095 or Fax: +64 6 833 6759 or E-mail: [postmaster--colenso--school--nz]