asp无组件上传的原理 (转)

http://blog.csdn.net/faintbear/archive/2004/10/15/138034.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、简介 自从接触ASP就开始接触上传,看过一些上传类,但是总感觉封装的还是不够简单,因此自己尝试写一个能够用最少最简单的代码实现各种上传方式的上传类。在学校期间就开始写,一点点的完善、优化,到现在的版本,现在的版本能适应各种上传方式。上 传类的主要的功能如下: 1、自由设置最大上传大小、单文件最大上传大小 2、自由设置允许上传的文件类型 3、可设置文本的编码,以适应各种上传环境 4、内置进度条,用户可选择开启和关闭 5、多种错误状态处理 6、多种文件保存方式:原文件名、随机文件名、用户自定义文件名 7、自由选择是否覆盖已存在文件 8、完整保存表单数据,支持同名表单,不支持同名文件域 注意: 1、特别注意Form一定要加上enctype="multipart/form-data"属性,method属性值必须是post,否则上传会出错 2、request.form()方法获取数据失效,请使用UpLoad.forms() 3、上传前请确认保存文件的文件夹有读写权限,若不可写则会出现"文件无法写入"错误,解决方法 http://dev.mo.cn/show.asp?id=81 二、调用方法 1、无组件类的调用方法: Dim Upload set Upload = new AnUpLoad 2、组件的调用方法: Dim Upload Set Upload = server.CreateObject("Anasp.Anupload") 注意:上传属性的设置必须在调用Upload.GetData()之前。 简单调用示例: Dim Upload set Upload=new AnUpLoad 'Set Upload = server.CreateObject("Anasp.Anupload") Upload.SingleSize=1024*1024*1024 '设置单个文件最大上传限制,按字节计;默认为不限制 Upload.MaxSize=1024*1024*1024 '设置最大上传限制,按字节计;默认为不限制 Upload.Exe="bmp|rar|pdf|jpg|gif" '设置合法扩展名,以|分割 Upload.Charset="gb2312" '设置文本编码,默认为gb2312 Upload.openProcesser=false '禁止进度条功能,如果启用,需配合客户端程序 Upload.GetData() '获取并保存数据,必须调用本方法
艾恩ASP无组件上传类,不敢夸口说多完美,但能实现基本的功能.包括提取表单数据、上传到不同文件夹、保存到 数据库(上传和保存表单可同时进行)、限制上传扩展名、限制上传大小、选择文件保存类型(原文件名和时间随机命名)等! 本类可以完整保存用户信息,包括同名称表单(和request.form一样以,为分割符进行保存),以及文件域的客户端路径。 处理完数据后,程序会提供两个方法-----files和forms,通过这两个方法实现文件的保存以及信息的读取,并且可以调用 fileaction类的GetBytes方法获取文件的二进制数据,可以把此数据保存到数据库(作者不推荐把二进制保存到数据库, 会影响数据库性能)。 此类最大的优点更多表现在多文件上传,即可以使用循环把所有文件保存到同一目录,又可以单独操作保存到不同目 录,灵活性相当高,完全脱离其他任何对象的束缚。并且可以自主选择保存方式--以原文件名保存或以程序自动生成的文 件名(时间 随机数字)保存 本类特点: • 尽量追求简洁,减少赘余代码 • 全面保存客户提交的信息(普通表单,文件域值,相同表单值) • 准确获取上传中的错误信息 • 可选择文件保存方式(以原文件名保存和以新文件名保存,新文件名为时间 随机数字组 • 文件保存函数简洁,调用方便,并且比较灵活(保存路径和保存方式可随时改变) • 同时可以获取文件的二进制形式,从而可以实现将二进制数据保存到数据库 • 灵活运用本类,可以实现表单数据和文件同时编辑(这是一般类无法达到的) • 更多的用途靠大家来发现了..... • Demo里面有几个个很简单的例子,能掌握这几个个例子一定可以灵活使用本类 更新日期:2011-3-25 1.修正上传数据丢失的错误. 2.去除自动获取图片宽高的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值