HTTP方式上载文件的ASP程序实例

网络整理 - 07-26
(摘自《计算机世界日报》)
1. HTTP 方 式 的 文 件 上 载
---- 文 件 的 上 载( upload) 是 制 作 网 站 时 经 常 遇 到 的 问 题, 经 常 上 网 的 朋 友 大 都 使 用 过WEB 方 式 的Email 发 信. 操 作 大 体 是 这 样: 当 选 择 了 粘 贴 文 件 后, 直 接 输 入 本 地 文 件 的 绝 对 路 径 或 按BROWSER 按 钮 浏 览 要 粘 贴 的 文 件, 而 后 确 认. 在 这 个 过 程 中 实 际 上 就 实 现 了HTTP 方 式 的 文 件 上 载.( 其 中BROWSER 按 钮 在 中 文 版 的Netscape 和IE4 中 显 示 为” 浏 ..”). 这 里 文 件 从 客 户 端 到 服 务 器 的 上 载 是 由HTTP 协 议 的 通 用 网 关 界 面(CGI) 支 持 的. 这 种 上 载 方 式 要 求 浏 览 器 和WEB Server 两 方 面 都 能 够 支 持Rfc1867. Netscape 的Web Server 和 浏 览 器 以 及IE4.0 都 支 持CGI 方 式 的 上 载, 但 是 微 软 的Web Server IIS 还 不 能 提 供 这 样 的 功 能. 也 就 是 说, 如 果 我 们 要 想 使 用ASP 实 现 文 件 上 载, 还 必 须 对IIS 进 行 配 置. 在 网 上 可 以 下 载 这 样 的Active Server Componet, 或 者 用VB 等 开 发 工 具 为IIS 编 写 一 个 这 样 的Active Server Componet 来 支 持Rfc1867. 由 于 采 用HTTP 方 式 上 载 文 件 对 使 用 者 来 说 是 最 直 接 和 方 便 的, 相 信 大 家 对 下 面 的ASP 实 例 一 定 会 感 兴 趣.

2. ASP 编 程 实 例
 

---- 为 了 使 大 家 对HTTP 方 式 的 上 载 有 一 个 感 性 的 认 识, 最 好 能 实 际 运 行 以 下 这 个 例 子. 这 个 简 单 的 例 子 有 两 个 文 件. 一 个 是upload.html, 一 个 是up.asp. upload.html 中 有 一 个FORM, 它 有 两 个 按 钮” 浏 览..” 和” 上 载”, 用 户 在 文 本 框 中 输 入 文 件 在 本 地 的 绝 对 路 径 或 通 过 浏 览 选 中 文 件 后 就 可 以 用” 上 载” 按 钮 将 文 件 上 载. 而IIS 上 的up.asp 将 会 把 文 件 存 到 服 务 器 上 的 指 定 路 径 下.

---- 2.1 upload.html 文 件

  < HTML >  
  < HEAD >< TITLE > 请 上 载 文 件< /TITLE >< /HEAD >

  < BODY >

< form enctype="multipart/form-data"
method="post" action="up.asp" >

输 入 上 载 文 件 的 名 称: < input type="file" >< br >

< input type="submit" value=” 上 载” >

< /form >

   < /BODY >

   < /HTML >

2.2  up.asp 文 件
< %@ LANGUAGE="VBscript" % >

< HTML >< HEAD >

< TITLE > 上 载 文 件 测 试< /TITLE >

< /HEAD >

< BODY >

  您 的 文 件 已 经 上 传 成 功!.< br >

< % Set upl = Server.CreateObject("SoftArtisans.FileUp") % >

< % upl.SaveAs "d:\upload\test.out" % >< BR >
文 件 长 度: < %=upl.TotalBytes% >
< /BODY >
< /HTML >


 

---- 2.3 例 子 说 明

---- 在HTML 中 FORM 必 须 有 ENCTYPE="multipart/form-data".

---- < INPUT TYPE="FILE" > 也 是 必 须 的.

---- 当 对FORM 确 认 后, 浏 览 器 将 会 传 送 指 定 文 件 的 内 容.

---- 在ASP 中 实 际 上 只 用 了 两 条 语 句 就 实 现 了 上 载

---- < % Set upl = Server.CreateObject("SoftArtisans.FileUp") % >

---- < % upl.SaveAs "d:\upload\test.out" % >

---- 第 一 条 语 句 使 用 一 个SoftArtisans.FileUp 的 对 象 创 建 了 一 个 名 为 upl 的 实 例, 这 里 用 到
了 一 个 称 为SA-FileUp 的Active Server Componet. 第 二 条 语 句 将 上 传 的 内 容 保 存 在 服 务 器 上.

---- 为 了 运 行 这 个 例 子, 需 要 到 站 点 下 载 这 个Active Server
Componet, 并 用 它 配 置 微 软 的IIS 或Personal Web Server. 以 上 实 例 笔 者 在IIS3.0 和I E4,Netsapce4.0 运 行 通 过.