如何在Web页面中集成文件上传功能

当前,个人主页制作非常流行。当用户开发好自己的页面时,需要将文件传输到服务器上,解决这个问题的方法之一

是运行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控件的个数。

如何在Web页面中集成文件上传功能,布布扣,bubuko.com

时间: 12-20

如何在Web页面中集成文件上传功能的相关文章

struts2中实现文件上传功能

在web项目中,文件上传.头像上传这样的功能经常是要用到的,下面就以在struts2中实现文件上传功能为例子,简单地理一下文件上传功能的编码思路. 项目目录结构 项目源代码 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:x

Java Web开发中的文件上传与下载

一.借助Struts2框架 1.环境搭建 1.1 导包:conmmons-fileupload-1.2.1.jar conmmons-io-1.4.jar 以及其他框架的jar包 2.页面:略 3.文件上传: 3.1 设计一个文件上传工具类:FileUploadUtils 1 public class FileUploadUtils{ 2 3 //文件要上传到的路径,可配置 4 @Resource 5 private String filePath; 6 7 private String cre

案例52-crm练习新增客户中加入文件上传功能(struts2文件上传)

1 jsp/customer/add.jsp 完整代码: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE

在WebBrowser中通过模拟键盘鼠标操控网页中的文件上传控件

在WebBrowser中通过模拟键盘鼠标操控网页中的文件上传控件 引言 这两天沉迷了Google SketchUp,刚刚玩够,一时兴起,研究了一下WebBrowser. 我在<WebBrowser控件使用技巧分享>一文中曾谈到过"我现在可以通过WebBrowser实现对各种Html元素的操控,唯独无法控制Html的上传控件",出于安全原因,IE没有对上传控件提供操控支持,这使得我们没法像控制其他控件一样用简单的代码进行赋值. 比较实际的解决方案就是模拟操作了,下面我就将演示

spring mvc中的文件上传

使用commons-fileupload上传文件所需要的架包有:commons-fileupload 和common-io两个架包支持,可以到Apache官网下砸. 在配置文件spring-mvc.xml中配置上传: <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> //文件上传最大是多少 <

转:在Struts 2中实现文件上传

前一阵子有些朋友在电子邮件中问关于Struts 2实现文件上传的问题, 所以今天我们就来讨论一下这个问题. 实现原理 Struts 2是通过Commons FileUpload文件上传.Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中.从而我们就能够以本地文件方式的操作浏览器上传的文件. 具体实现 前段时间Apache发布了Struts 2.0.6 GA,所以本文的实现是以该版本的Struts

SpringMVC学习(九)——SpringMVC中实现文件上传

这一篇博文主要来总结下SpringMVC中实现文件上传的步骤.但这里我只讲单个文件的上传. 环境准备 SpringMVC上传文件的功能需要两个jar包的支持,如下: 工程中肯定要导入以上两个jar包,主要是CommonsMultipartResolver解析器依赖commons-fileupload和commons-io这两个jar包. 单个文件的上传 前台页面 我们要改造editItem.jsp页面,主要是在form表单中添加商品图片一栏,效果我截图如下: 注意一点的是form表单中别忘了写e

struts2中的文件上传和下载

天下大事,必做于细.天下难事,必作于易. 曾经见过某些人,基础的知识还不扎实就去学习更难的事,这样必然在学习新的知识会很迷惑结果 再回来重新学习一下没有搞懂的知识,这必然会导致学习效率的下降!我写的这篇上传和下载都很基础. 十分适合初学者! jsp:页面 <!--在进行文件上传时,表单提交方式一定要是post的方式,因为文件上传时二进制文件可能会很大,还有就是enctype属性,这个属性一定要写成multipart/form-data, 不然就会以二进制文本上传到服务器端--> <for

PHP中,文件上传实例

PHP中,文件上传一般是通过move_uploaded_file()来实现的.  bool move_uploaded_file ( string filename, string destination ) 本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的).如果文件合法,则将 其移动为由 destination 指定的文件. 如果 filename 不是合法的上传文件,不会出现任何操作,move_uploaded_fi