HTTP方式上载文件的ASP程序实例
文章类别:
asp | 发表日期:2008-10-5 20:42:02
(摘自《计算机世界日报》)
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" name="f1" >< 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. 第 二 条 语 句 将 上 传 的 内 容 保 存 在 服 务 器 上.
---- 为 了 运 行 这 个 例 子, 需 要 到http://www.serverpages.com/upload 站 点 下 载 这 个Active Server
Componet, 并 用 它 配 置 微 软 的IIS 或Personal Web Server. 以 上 实 例 笔 者 在IIS3.0 和I E4,Netsapce4.0 运 行 通 过.