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: [EMAIL PROTECTED] 


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.

Reply via email to