摘要:在基于/的应用环境中,上传各种类型的文件一直是困扰用户文件管理应用的难题之一。在HTTP中上传文件有三种机制:RFC1867,PUT和WebDAV。常用的实现方法是利用在RFC1867中引入的一个新类型:File以及ADO Stream对象。本文对上述上传方法及实现原理作了论述,并给出了具体解决实例。
ASP FILE对象
当前,基于/模式的应用比较流行。当用户需要将文件传输到上时,常用方法之一是运行FTP并将每个用户的FTP默认目录设为用户的Web主目录,这样用户就能运行FTP客户程序并上传文件到指定的 Web目录。这就要求用户必须懂得如何使用FTP客户程序。因此,这种解决方案仅对熟悉FTP且富有经验的用户来说是可行的。
如果我们能把文件上传功能与Web集成,使用户仅用Web就能完成上传任务,这对于他们来说将是非常方便的。但是,一直以来,由于File System Object的仅能传送文本文件的局限,所以ASP最大的难题就是文件上传问题。下面介绍的就是如何在基于HTTP协议的网页中实现文件的上传。
一.通过HTTP上传的三种机制
通过HTTP上传有三种机制:RFC1867, PUT 和 WebDAV。
PUT 是在HTTP 1.1引入了一个新的HTTP动词。当web收到一个HTTP PUT和对象名字,它将会验证用户,接收HTTP流的内容,并把它直接存入web。由于这可能会对一个web站点造成破坏,并且还会失去HTTP最大的优势:可编程性。在PUT的情况下,自己处理请求:没有空间让CGI或者ASP应用程序介入。唯一让你的应用程序捕获PUT的方法是在低层操作,ISAPI过滤层。由于相应的原因,PUT的应用很有限。
而WebDAV允许web内容的分布式认证与翻译。它引入了几种新的HTTP动词,允许通过HTTP上传,锁定/解锁,登记/检验web内容。Office 2000中的"Save to web" 就是通过WebDAV来实现的。如果你所感兴趣的一切都是上传内容,WebDAV应用得非常出色,它解决了很多问题。
然而,如果你需要在你的web应用程序里面上传文件,WebDAV对你就毫无用处可言。象HTTP PUT一样,那些WebDAV的动词是被解释的,而不是web应用程序。你需要工作在ISAPI过滤层来访问WebDAV的这些动词,并在你的应用程序中解释内容。
RFC1867 (http://www.ietf.org/rfc/rfc1867.txt) 最终被W3C在HTML3.2中接受前,是作为一种建议标准。它是一种非常简单但是功能很强大的想法:在表单字段中定义一个新类型。
<INPUT TYPE="FILE">
并且在表单本身加入了不同的编码方案,不再使用典型的:
ASP文件上传原理分析及实现实例
时间: 2024-09-30 13:00:57
ASP文件上传原理分析及实现实例的相关文章
asp文件上传的速度和上传组件有关吗
问题描述 asp文件上传的速度和上传组件有关吗,我有两个上传文件源代码,一个上传组件是无惧上传组件一个是upload_5xsoft程序运行时前者上传文件90M很快上传了(都是本地上传到本地的),后者10M的都要很慢求解等大虾~~~ 解决方案 解决方案二:有关系有的组件做得很好上传很快解决方案三:由关系吧解决方案四:有关系的,尽量用第三方组件或者.Net上传,纯脚本写的效率不高
原创的ASP文件上传函数库,比动网、amao的都差了很多,不过是学习的好资料
原创的ASP文件上传函数库,比动网.amao的都差了很多,不过是学习的好资料 54powerman 说明:如果你需要file表单的串值,用GetFullName("file")如果需要file表单的文件名,用GetFileName("file")如果需要file表单的扩展名,用GetExtName("file")如果需要普通文本表单的值,用MyRequest("password")如果需要file表单的二进制值,也是用MyRe
asp文件上传组件 Persits.UploadProgress
<!-- 本文章提供了asp文件上传组件 persits.uploadprogress来实时文件上传功能哦. <%@enablesessionstate=false%> <% response.expires = -1 pid = request("pid") timeo = request("to") set uploadprogress = server.createobject("persits.uploadprogr
BootStrap Progressbar 实现大文件上传的进度条的实例代码_javascript技巧
1.首先实现大文件上传,如果是几兆或者几十兆的文件就用基本的上传方式就可以了,但是如果是大文件上传的话最好是用分片上传的方式.我这里主要是使用在客户端进行分片读取到服务器段,然后保存,到了服务器段读取完了之后将分片数据进行组合. 2.前端代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UploadTest2.aspx.cs" Inherits="Htm
ASP文件上传神功 第一重(单个图片上传到数据库)
上传|数据|数据库 第一重:单个图片上传到数据库 这个问题已经不是什么新鲜问题了,网上也有大把的教程,但大多数是授人以鱼,而不授人以渔,经过辛苦的资料收集,思考,调试,整理,我基本上已经把这个问题从原理上搞清楚了,现在根据我自己的理解,在范例程序的基础上,加以解释,希望能对部分网友(比我还菜的:-))有所帮助. 请诸位大虾能对其中的不正或不良这处予以指正. 程序中stream对象的用法上参考了"化境HTTP上传程序 Version 2.0"在代码,在此对稻香老农和梁无惧表示衷心的感谢和
一段简单 ASP文件上传实例
本教程将告诉你需要建立一个简单的应用程序,使用户能够上传PDF文件到服务器的步骤,删除现有的文件和查看他们的浏览器中的文件.这个例子使用我们自己的dgFileUpload组成部分,你可以下载一个15天的试用版在这里,您可以按照教程和测试自己的服务器完成的应用程序.所有的源代码,随着小Access 2000数据库教程在本教程中使用,可以下载在这里作为一个ZIP档案. 在下载并取消荏苒存档,您的网站根目录下创建(如的'C: inetpub wwwroot的 dgUpload'),并把两个ASP页(新
PHP单文件上传原理及上传函数的封装
服务器(临时文件)-->指定目录,当文件进入服务器时它就是临时文件了,这时操作中要用临时文件的名称tmp_name. //在客户端设置上传文件的限制(文件类型和大小)是不安全的,因为客户能通过源代码修改限制,所以在服务端这里设置限制. //设置编码为UTF-8,以避免中文乱码 header('Content-Type:text/html;charset=utf-8'); //通过$_FILES接收上传文件的信息 $fileInfo = $_FILES['myFile']; function up
asp文件上传错误&;#039;800a0005&;#039;的解决方法
一.治标方法: IE7以上版本其实把文件上传是否发送完整的本地路径做成一个选项,在IE的Internet选项中可以设置.如下图: 1.Internet安全选项: 2.完整路径选项设置: 由于默认是禁用的,所以会出现问题,把它启用就可以解决问题了.但这是治标的方法,如果网页是面向普通用户的,你不可能要求所有用户都来改变这个设置. 二.治本方法: 治本的方法只能靠改程序了.对于图片预览的,目前我还没有很好的方法获取到图片的本地完整路径,所以只能通过判断浏览器的版本,如果是IE7和FireFox3的版
php图片文件上传详细分析
upload_err_ok no error occurred. 上传成功 upload_err_ini_size the uploaded file exceeds the maximum value specified in the php教程.ini file. 超出最大上传尺寸 upload_err_form_size the uploaded file exceeds the maximum value specified by