利用ASP技术实现文件直接上传功能

2016-01-29 18:56 22 1 收藏

利用ASP技术实现文件直接上传功能,利用ASP技术实现文件直接上传功能

【 tulaoshi.com - ASP 】

 

  采用WEB技术实现B/S(浏览器/服务器)结构的管理系统是办公自动化的发展趋势。基于WEB技术的管理系统,由于开发周期短;与用户平台无关;易于实现交互式应用;能对信息进行快速、高效的收集、处理和发布,近几年来得到了迅速发展。而ASP技术由于其开发效率高、交互性好,安全性强等特点,逐渐成为开发管理系统的首选工具。

  许多基于WEB的应用都涉及文件上传操作。常见的文件上传技术有:基于HTTP协议的;基于VB(或DELPHI等编程语言)开发的文件上传组件的;基于数据库技术的等等。这些方法一般都需要编程者能同时掌握WEB技术、数据库技术或CGI技术或组件技术,对编程者的要求较高。而本文将介绍的利用ASP技术直接实现文件上传功能则只需编程者掌握单一的ASP技术即可,大大降低了编程难度。

  几种文件上传技术的比较

  1、基于HTTP协议

  该方法需要编程者利用第三方软件,如DELPHI、VB等,在应用程序中先进行HTTP协议编程,然后将待上传文件内容按HTTP协议的格式打包,最后向WEB服务器发送上传的请求报文,从而实现文件的上传。因为DELPHI和VB不能编写完整的WEB网络程序,只能编写WEB小应用程序,因此,该方法只用于功能受限的网络应用。

  2、基于VB(或DELPHI等)开发的文件上传组件

  该方法利用VB(或DELPHI等编程语言)开发ASP服务器组件,实现特定的文件上传服务。它首先利用ASP表单功能将文件(二进制格式)从用户端上传到服务器端,然后使用VB开发的组件,对二进制文件进行处理,成为可以正常读写的文件。该方法要求编程者不仅掌握ASP语言,而且还能利用VB等第三方语言进行组件编程,增加了开发的难度。

  3、基于数据库技术

  该方法和上个方法有类似之处。不同的地方在于对上传的二进制文件的处理上。它使用数据库来保存二进制文件。无论是小型数据库还是大型数据库都提供了存储二进制数据的数据类型,只要以Append Chunk方式将数据存入相应的字段就可以了。该方法虽然简单可行,但是因为每次上传的文件大小都是不一样的,因此,会对数据库的空间造成很大的浪费,降低了数据的访问速度;并且使得文件只能在数据库环境下进行访问,造成了很大的不便。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/asp/)

  实例分析

  但是,利用ASP技术直接实现文件上传功能则只需编程者掌握单一的ASP技术即可,

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/asp/)

  大大降低了编程难度。下面我们将通过一个实例来介绍如何使用该方法。

  1、文件上传表单

  首先需要编写一个能提供文件上传功能的表单,程序如下所示:

<Form action="upload.asp" method=post enctype="multipart/form-data"
上传文件:<Input type=file name=file1<br
<input type=submit name=upload value="上传"
</form

  其中,enctype参数用来设置表单的MIME编码方式,在进行文件(或同时包含文本框)上传时,必须将其属性设置为"multipart/form-data";upload.asp是服务器端对接收到的二进制文件流进行处理的ASP程序,在本文的后面将陆续介绍其内容。

  2、上传文件格式分析

  在处理文件之前,我们要先了解上传的文件的具体格式,通过编写下面一段简单的ASP程序就可以查看其二进制代码:

<%
filesize=Request.TotalBytes '获得上传文件的大小
filedata=Request.BinaryRead(filesize) '获得上传文件的二进制数据
Response.BinaryWrite filedata '在浏览器上显示二进制数据
%

  分析浏览器上显示的上传文件的二进制代码,发现代码包括四个部分(若同时上传多个文件或文本框,则代码按上传的先后次序排列,格式相同),每一部分的内容是用回车换行符号来进行分隔的:

  1)第一部分(起始标志)
  -----------------------------7d329631b04d4
  2)第二部分(文件说明)

Content-Disposition: form-data; name="file1"; filename="C:Documents and SettingsAdministratorMy DocumentsInvitation.doc" Content-Type: application/msword

  在此,我们可以获得上传文件的文件名称及绝对路径,也可以获得文件类型。这些信息是正确保存文件所不可缺少的。
  
  3)第三部分(文件内容)

  即文件的二进制内容,略。

  4)第四部分(结束标志)

-----------------------------7d329631b04d4

  结合第一部分和第四部分的内容来看,"-----------------------------7d329631b04d4"(每次上传,数值都不一样)起到了分割符的作用,它标志着一段数据(当有多个上传内容时)的开始和结束。从保存文件所需要的信息来讲,我们首先需要从第二部分数据的"filename"中获得文件名称,然后需要正确定位文件的起始位置,最后利用ASP技术将二进制文件用本来的文件名保存即可。若同时上传多个内容(如多个文本框和文件),也是按同样的方法处理,每部分的内容都包含在分割符之中,只是文本框和文件的表现形式稍有不同,这可以通过

来源:https://www.tulaoshi.com/n/20160129/1507834.html

延伸阅读
标签: ASP
摘要:在基于/的应用环境中,上传各种类型的文件一直是困扰用户文件管理应用的难题之一。在HTTP中上传文件有三种机制:RFC1867,PUT和WebDAV。常用的实现方法是利用在RFC1867中引入的一个新类型:File以及ADO Stream对象。本文对上述上传方法及实现原理作了论述,并给出了具体解决实例。 ASP FILE对象 当前,基于/模式的应用比较流...
标签: PHP
  文件上传的实现   对ASP比较熟悉的朋友可能知道用ASP上传文件可是不太简单,PHP不同,比较容易,看例子:send.htm和get.php 如下: <!--文件send.htm -- <form ENCTYPE="multipart/form-data" ACTION="get.php" METHOD=post   <INPUT TYPE="hidden" name="MAX...
标签: ASP
  最近做在做项目,涉及到文件上载的问题,找来资料研究了一下。当用户需要将文件传输到服务器上时,常用方法是使用FTP方式,用FTP的话虽然传输稳定,但安全性是个严重的问题,而且FTP服务器读用户库获取权限,这样对于用户使用来说还是不太方便。如果我们能把文件上载功能与Web集成,使用户仅用Web浏览器就能完成上载任务,这对于他...
标签: ASP
  概述     本文讲解了一个使用XML技术上传文件的例子,使用该方法没有传统方法中的种种限制。 这个例子讲述了如何使用MSXML3.0和ADO Stream对象来实现这种新的上传方法。好处有很多,比如,不需要专用的上传组件。 引言     为了在HTML网页中获得上传功能,在客户端我们可以使用如下格式的FORM: <F...
标签: Web开发
HTML 5 让 HTML 这个一度单纯的置标语言焕发出成熟的魅力,使之成为 Web 开发者的强力工具。 近日W3C又推出一个新草案 HTML5 File API ,这个 API 将让大大改善基于Web 的文件上传操作,甚至可以实现直接将文件从桌面拖放至Web。 该草案使用 input type="file" /  实现文件的上传,而其对应的 API 为开发者提供了操控...

经验教程

290

收藏

18
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部