是运行ftp服务器并将每个用户的ftp默认目录设为用户的web主目录,这样用户就能运行ftp客户程序并上传文件到指定的
web目录。由于windows nt 和 windows98均不提供直接的基于窗口形式的ftp客户程序,用户必须懂得如何使用基于命令行
的ftp客户,或掌握一种新的基于窗口形式的ftp客户程序。因此,这种解决方案仅对熟悉ftp且富有经验的用户来说是可行
的。 如果我们能把文件上传功能与web集成,使用户仅用web浏览器就能完成上传任务,这对于他们来说将是非常方便的。
下面就结合笔者的实践经验对这一方案作一简要介绍。
本方案的软件配置如下:客户机操作系统为 windows98 ; 服务器操作系统为windows nt server;web服务器为
iis4.0。为使iis能够接收上传的文件, 还必须安装posting acceptor组件,该组件位于nt 4.0 option pack 的 site
server express中。posting acceptor组件的isapi扩展函数cpshost.dll直接处理文件上传,目的url被映射、解析为服务
器上的物理磁盘位置。
具体应用见如下网页代码:
<% response.buffer = true %>
<% if (len(request.servervariables("logon_user")) = 0 ) then %>
<% response.status = "401 unauthorized" %>
<html><body><b>错误: 拒绝访问.</b><p></body></html>
<% else %>
<html>
<head>
<title>上传文件</title>
</head>
<body>
<h1 align="center">上传文件</h1>
<form method="post" enctype="multipart/form-data"
action="http://<%= request.servervariables("server_name") %>
/myweb/cpshost.dll?publish">
<input name="targeturl" type="hidden" value="http://<%=
request.servervariables("server_name") %>/myweb/<%=
request.servervariables("logon_user") %>"
>
请选择要上传的文件: <input name="my_file" type="file"><br>
请选择要上传的文件: <input name="my_file" type="file"><br>
请选择要上传的文件: <input name="my_file" type="file"><br>
<br>
<input type="submit" name="cmdup" value="上 传">
</form>
</body>
</html>
<% end if %>
上述代码以asp文件的形式存放在web网站宿主目录下myweb目录中, 用户只需用浏览器请求该文件即可。
需要注意的几点是:
⒈request.servervariables("logon_user")返回登录到windows nt域的用户名,在本例中,如果用户名为空,则显示
拒绝访问页面;不为空,才显示正常上传页面。
⒉在安装posting acceptor组件后,cpshost.dll文件位于web服务器宿主目录下scripts目录中,可以把该文件拷贝到
自己的目录中使用。
⒊在表单中,enctype="multipart/form-data" 这一项不能少,否则不能正常上传。
⒋表单控件targeturl的名称(name属性)不能变。type="hidden"使该控件在页面中不显示。value属性确定上传文件在
服务器中存放的路径, 可以根据实际情况调整。在本例中,文件上传路径是myweb目录(也就是本asp文件和cpshost.dll文
件存放目录)下与登录用户名同名的子目录,并且该目录权限设为可写。
⒌my_file控件类型为"file",在浏览器中显示的是一个文本框后带一个"浏览"按钮。当用户单击"浏览"按钮时,将弹
出一个标准的选择文件对话框,供用户选择要上传的文件。可以根据实际需要增减my_file控件的个数。
文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




