要实现该功能,就要利用一些特制的文件上传组件。文件上传组件网页非常多,这里介绍国际上非常有名的ASPUpload组件

1 下载和安装ASPUpload
 
要实现该功能,就要利用一些特制的文件上传组件。文件上传组件网页非常多,这里介绍国际上非常有名的ASPUpload组件,它的下载网址是:

http://www.persits.com/aspupload.exe

组件提供者网址是:
          
http://www.aspupload.com
       
注意:首先去掉要存放上传文件的文件夹的只读属性,对于Windows2000和Windows
XP来说,如果安装时采用NTFS文件系统,还需要将该文件夹设置为EveryOne(任何人)可以完全控制。
 按照上面的网址下载该组件后,直接双击下载文件,按照提示一步一步安装即可。安装完毕后,将默认生成"c:\Program
Files\Persits Software\AspUpload"文件夹,里面有使用说明和例子。
 
2. 使用ASPUpload组件上传文件
 该组件功能强大,不仅可以上传文件,还可以像普通表单一样上传一些表单元素值,这样就可以给上传的文件加一些说明文字。因为既有上传文件属性,又有上传表单属性,所以比较复杂,这里只介绍最常用的。

上传组件的常用属性如表8-2所示。
 表8-2 上传组件的属性


上传组件的常用方法如表8-3所示。
 表8-3 上传组件的方法

上传表单元素的属性如表8-5所示。
 表8-5 上传表单元素的属性

清单8-3 8-3.asp 上传文件表单
<html>
 <head>
 <title>
上传一个文件示例</title>
 </head>
 <body>
 <H2
align="center">上传一个文件</H2>

<center>
 <form action="8-4.asp"
method="post" enctype="multipart/form-data" >
 选择文件:<input type="file"
name="upfile"><br>

文件说明:<input type="text"
name="intro"
size="30"><br>
 作者姓名:<input type="text"
name="author"
size="30"><br>
 <input type="submit" value=" 确定
">
 </form>
 </center>
 </body>
</html>
清单8-4 8-4.asp 上传文件执行程序
  <% Option Explicit
%>
 <html>
 <head>
 <title>上传一个文件示例</title>

</head>
 <body>
 <H2
align="center">文件已安全上传</H2>

<center>
 <%
 Dim Upload '声明一个变量
 Set Upload =
Server.CreateObject("Persits.Upload.1") '创建一个文件上传组件实例
 Upload.SetMaxSize 2*1024*1024,False
'限制文件不超过2M,否则截断
 Upload.OverwriteFiles=True 'True表示可以覆盖
 Upload.Save
"C:\inetpub\wwwroot\asptemp\chapter8\upload" '上传到指定文件夹
 Response.Write "上传文件为:" &
Upload.Files("upfile").Path &
"<BR>"
 Response.Write "文件大小为:" &
Upload.Files("upfile").Size &
"字节<BR>"
 Response.Write "文件说明为:" &
Upload.Form("intro").value &
"<BR>"
 Response.Write "作者姓名为:" &
Upload.Form("author").value &
"<BR>"
 %>
 </center>
 </body>
</html>
程序说明:
       
1)注意8-3.asp中FORM表单的写法:<form action="8-4.asp"
method="post" enctype="multipart/form-data"
>,这里一定要写成enctype="multipart/form-data"。
       
2)还要注意,选择文件用的是FORM表单的选择文件元素:<input type="file"
name="upfile">
       
3)关于限制文件大小,Upload.SetMaxSize 2*1024*1024,False
表示限制文件大小为2MB;False表示如果文件超过2MB,则自动截断为2MB大小;如果改为True,则不自动截断,程序将报错误信息。

4)关于文件可以覆盖,Upload.OverwriteFiles=True表示如果文件名和原有的文件名字相同,则可以覆盖;False表示不可以覆盖,将自动另外起一个名字保存。默认为True。

5)关于文件保存路径,Upload.Save
"C:\inetpub\wwwroot\asptemp\chapter11\upload"
,这里写的物理路径,也可以利用以前学过的Server对象的Mappath方法,此句可以写成:Upload.Save.Server.Mappath("upload")
。这样写,程序移植更方便。
       
6)还要特别注意的是,用于保存上传文件的文件夹必须是存在的;而且,如果服务器是Windows 2000或Windows
NT操作系统,必须将该文件夹权限设置成所有人可以存取的,否则将无法上传文件。
       
7)在获取上传文件的属性时,用了Upload.Files("upfile").Path和Upload.Files("upfile").Size,
后面的Path和Size属性不可以省略,否则不清楚到底希望获取文件的什么属性。而获取表单元素时,用了
Upload.Form("intro").value,这时的Value属性是可以省略的。

在上面的例子里,一次只能上传一个文件,如果想一次上传多个文件页很容易,只要像在普通的FORM表单里加多个表单元素一样就可以了,请参考下面具体的例子。

清单8-5 8-5.asp 上传多个文件表单
  <html>
 <head>
 <title>
上传多个文件示例</title>
 </head>
 <body>
 <H2
align="center">上传多个文件</H2>

<center>
 <form action="8-6.asp"
method="post" enctype="multipart/form-data" >
 选择文件1:<input type="file" name="
upfile1">
 文件说明1:<input type=text
name="intro1"
size="30"><BR>
 选择文件2:<input type="file"
name="upfile2">
 文件说明2:<input type=text
name="intro2"
size="30"><BR>
 <input type="submit" value=" 确定
">
 </form>
 </center>
 </body>
</html>
清单8-6 8-6.asp 上传多个文件执行文件
  <% Option Explicit
%>
 <html>
 <head>
 <title>
上传多个文件示例</title>
 </head>
 <body>
 <H2
align="center">文件已安全上传</H2>

<center>
 <%
 Dim Upload
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.Save Server.Mappath("upload") '上传到指定文件夹
 Dim upfile,Item
 For Each upfile In Upload.Files
'这里用一个循环写出所有文件的信息
 Response.Write upfile.Name & "="
& upfile.Path & " ("
& upfile.Size &
")<BR>"
 Next
 For Each Item In Upload.Form
'这里用一个循环写出所有表单元素信息
 Response.Write Item.Name & "="
& Item.Value &
"<BR>"
 Next
 %>
 </center>
 </body>
</html>
程序说明:
       
在上面的程序中没有像前一个例子一样一个一个写出上传文件和文件说明,而是用了一个For
Each循环,效果是一样的。因为上传后,其实是传上来一个Files集合,一个Form集合。Files集合包括所有上传文件,Form集合包括所有上传表单元素。

asp 文件上传(ASPUpload组件上传)的更多相关文章

  1. asp 文件上传(无组件上传)

    文件1.上传界面文件 upload.htm<html><head><meta http-equiv="Content-Language" conten ...

  2. AspUpload组件的安装及使用方法介绍

    http://soft.huweishen.com/soft/47.html AspUpload对ASP编程人员来说要实现ASP网站文件上传功能它是首选.本文就为大家介绍一下AspUpload组件的安 ...

  3. asp.net文件上传下载组件

    以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备文件上传的API #region 文件上传  ...

  4. flash文件上传下载组件

    以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备文件上传的API #region 文件上传  ...

  5. chunkupload文件上传断点续传组件(java)

    chunkupload简介 chunkupload是一款基于java语言的断点续传组件,针对文件上传,非文件下载,集成方便,使用简单. 从整体上讲,chunkupload会对文件进行切片处理,每个切片 ...

  6. chunkupload 文件上传断点续传组件(java) - 正式发布

    chunkupload简介 chunkupload是一款基于java语言的断点续传组件,针对文件上传,非文件下载,集成方便,使用简单. chunkupload实现如下功能: ·  实现断点续传 ·  ...

  7. 打造 html5 文件上传组件,实现进度显示及拖拽上传,支持秒传+分片上传+断点续传,兼容IE6+及其它标准浏览器

    老早就注册了博客园帐号,昨天才发现,连博客都没开,Github也是一样,深觉惭愧,赶紧潜个水压压惊`(*∩_∩*)′ 言归正传.大概许多人都会用到文件上传的功能,上传的库貌似也不少,比如(jQuery ...

  8. 使用commons-fileUpload组件上传文件

    在近期的一个项目中有用到commons-fileUpload组件进行实现文件上传的功能(由于没用到框架),在使用的过程中有遇到一些问题,经过自己的琢磨也算顺利地将其解决了,在这里做个记录. 一.com ...

  9. EasyUI 关于IE使用window组件上传文件

    有时候IE会对使用window组件上传文件(第二次)不生效,解决方案是: 将该window每次打开的时候,使用: $('#adUploadWindow').window('refresh', 'pan ...

随机推荐

  1. Django学习--9 多对一关系模型

    保持前面的不变只是增加了一些 1.vim sdj/models.py class Blog(models.Model):        name = models.CharField(max_leng ...

  2. JQuery合并列(可用于导出Word)

    在网上找了一些JQuery合并列的例子,但是都是用.hide()的方式,这样导致了在导出Word的时候表格严重变形 自己写了一个用.remove()方式的合并列 function arrangeTab ...

  3. ifndef/define/endif作用和用法

    问题:ifndef/define/endif”主要目的是防止头文件的重复包含和编译,偶只知道这个概念不懂的是怎么个用法,和为什么要用它~~高手请指点一下~~谢谢~~~!!! ------------- ...

  4. UMeng 友盟的用户数,启动数 等

    最近一哥们研究UMeng 友盟的用户数,启动数,设备和位置相关数据,发现真的可以模拟啊. 支持Android,IOS,WPhone平台,同时可以实现每小时按10万级的速度增加,启动次数也是可以按10万 ...

  5. UIDynamic 基础认识

    UIDynamic 是从iOS 7开始引入的一种新技术,属于UIKit框架,可以模拟现实生活中的物理现象,如:碰撞.抖动.摆动等 动力效果:有一个效果器,叫做“动力效果器”里面面可以添加“动力效果” ...

  6. C#学习笔记之线程 - 使用线程

    基于事件的异步模式 (EAP -- The Event-Based Asynchronous Pattern) EAP提供了一个简单的办法,通过它的类能够提供多线程能力,而不需显式的开启或管理线程.它 ...

  7. OC5_类别

    // // NSString+Reverse.h // OC5_类别 // // Created by zhangxueming on 15/6/16. // Copyright (c) 2015年 ...

  8. (转)在SQL中取出字符串中数字部分或在SQL中取出字符部分

    近来在开发一个项目时,一包含数字的字符串,需要取出中间的数字部分进行排序.经过baidu搜索.并结合自己项目的需求,编写了一个自定义的SQL函数用供项目中使用. /****** Object: Use ...

  9. Koajs原理

    Koajs让习惯阻塞式代码写法的同学感到很舒服,再也不用盖楼式的callback了,而且也不需要学习Promise的then,catch这些新东西. 但实际上,Koajs这样的写法有点像是语言的语法糖 ...

  10. JSONP 含jquery 实例

     前言: 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现. 当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Soc ...