<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Webb.WAVE.Controls.Upload大文件上传组件使用说明:</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta content="VisualStudio.HTML" name="ProgId">
<meta content="Microsoft Visual Studio .NET 7.1" name="Originator">
<style type="text/css"> <!-- .style2 {color: #0000FF}
.style5 {color: #000000}
.style9 {color: #FF0000}
td { font-size: 10pt; }
--></style>
</head>
<body>
<table width="780" border="1" cellpadding="2" cellspacing="2">
<tr>
<td colspan="3"><strong>Webb.WAVE.Controls.Upload大文件上传组件使用说明:</strong></td>
</tr>
<tr>
<td><span class="style9">类</span></td>
<td><span class="style2">方法/属性/枚举</span></td>
<td><span class="style5">说明</span></td>
</tr>
<tr>
<td>WebbUpload</td>
<td>WebbUpload ( )</td>
<td>构造函数。</td>
</tr>
<tr>
<td> </td>
<td>GetUploadFile ( System.String name )<br>
</td>
<td>返回UplaodFile实例,参数name为input/type=file的Html控件名。</td>
</tr>
<tr>
<td> </td>
<td>GetUploadFileList ( System.String name )<br>
</td>
<td>返回UplaodFileCollection实例,参数name为input/type=file的Html控件名。</td>
</tr>
<tr>
<td> </td>
<td>RegisterProgressBar ( System.Web.UI.WebControls.WebControl m_controls )<br>
</td>
<td>注册控件的进度条,注意m_controls必须为一个可以实现onclick属性的HTML控件。</td>
</tr>
<tr>
<td> </td>
<td>
RegisterProgressBar ( System.Web.UI.WebControls.Button uploadButton ,
System.Boolean causesValidation )<br>
</td>
<td>注册Button的进度条,causesValidation说明是否进行提交验证。</td>
</tr>
<tr>
<td> </td>
<td>
SetTempPath ( System.String m_path )<br>
</td>
<td>设定上传临时路径。m_path为服务 器绝对路径。
</td>
</tr>
<tr>
<td>
UploadFile</td>
<td>
UploadFile ( System.String i_name )<br>
</td>
<td>构造函数,参数i_name为input/type=file的Html控件名。</td>
</tr>
<tr>
<td> </td>
<td>SaveAs ( System.String filename )<br>
</td>
<td>保存上传的文件,filename为服务器绝对路径。</td>
</tr>
<tr>
<td> </td>
<td>string ClientFullPathName [ get]<br>
</td>
<td>只读属性,文件在客户端上的文件名。</td>
</tr>
<tr>
<td> </td>
<td>
string ContentType [ get]<br>
</td>
<td>只读属性,文件content类型。</td>
</tr>
<tr>
<td> </td>
<td>string FileName [ get]<br>
</td>
<td>只读属性,文件在服务器上的临时名。</td>
</tr>
<tr>
<td> </td>
<td>
long FileSize [ get]<br>
</td>
<td>只读属性,文件大小,字节单位。</td>
</tr>
<tr>
<td> </td>
<td>string ExtendName [ get]<br>
</td>
<td>只读属性,文件扩展名。</td>
</tr>
<tr>
<td>UploadFileCollection</td>
<td>public void Add ( Webb.WAVE.Controls.Upload.UploadFile File )<br>
</td>
<td>文件集。</td>
</tr>
<tr>
<td> </td>
<td>public virtual new void CopyTo ( System.Array array , System.Int32 index )<br>
Member of Webb.WAVE.Controls.Upload.UploadFileCollection<br>
</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>public virtual new System.Collections.IEnumerator GetEnumerator ( )<br>
Member of Webb.WAVE.Controls.Upload.UploadFileCollection<br>
</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>public UploadFileCollection ( )<br>
Member of Webb.WAVE.Controls.Upload.UploadFileCollection<br>
</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>public virtual new int Count [ get]<br>
Member of Webb.WAVE.Controls.Upload.UploadFileCollection<br>
</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>public virtual new bool IsSynchronized [ get]<br>
Member of Webb.WAVE.Controls.Upload.UploadFileCollection<br>
</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>public virtual new object SyncRoot [ get]<br>
Member of Webb.WAVE.Controls.Upload.UploadFileCollection<br>
</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>public const Webb.WAVE.Controls.Upload.UploadFile this [ get]<br>
Member of Webb.WAVE.Controls.Upload.UploadFileCollection<br>
</td>
<td> </td>
</tr>
<tr>
<td>WebbTextTrace
<br>
</td>
<td>public static void TraceMsg ( System.String str_traceMsg )<br>
Member of Webb.WAVE.Controls.Upload.WebbTextTrace<br>
</td>
<td>测试类,在WEB目录下生成一个TraceLog.ashx的文本文件,记录文本信息。</td>
</tr>
<tr>
<td> </td>
<td>public static void TraceMsg ( System.String str_traceMsg , System.String
str_fileName )<br>
Member of Webb.WAVE.Controls.Upload.WebbTextTrace<br>
</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>public WebbTextTrace ( System.String str_traceMsg )<br>
Member of Webb.WAVE.Controls.Upload.WebbTextTrace<br>
</td>
<td>静态函数,输出文件信息到TraceLog.ashx文件里,主要用于调试。</td>
</tr>
<TR>
<TD colSpan="3"><FONT face="宋体">Web.conig配置</FONT></TD>
</TR>
<TR>
<TD colSpan="3"><p><FONT face="宋体"></FONT><configuration><br>
<FONT face="宋体"><system.web><br>
<!-- Settings of WebbUpload --><br>
<httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="1024000"
executionTimeout="900" /><br>
<httpModules><br>
<add name="WebbHttpModule" type="Webb.WAVE.Controls.Upload.WebbHttpModule,
Webb.WAVE.Controls.Upload"/><br>
</httpModules>
<br>
<httpHandlers><br>
<add verb="*" path="progress.ashx"
type="Webb.WAVE.Controls.Upload.WebbUploadHandler, Webb.WAVE.Controls.Upload"
/><br>
</httpHandlers><br>
<!-- ========================= -->
<br>
</system.web><br>
</FONT></configuration></p>
</TD>
</TR>
<TR>
<TD colSpan="3">
<P><FONT face="宋体">最后说明:</FONT></P>
<P><FONT face="宋体">1、由于时间仓促,很多事情还没有完成,所以这个组件里面可能会存在一些BUG。<BR>
</FONT><FONT face="宋体">2、此组件只用于学习交流使用,不得用于任何商业用途。否则,出现的任何后果一律由使用者本人负责。<BR>
3、关于源代码的分析(在本人的博客上),与本组件关系不大,本组件的主要核心算法与SunriseUpload.0.9.1的完全不一样。其它部份代码参了SunriseUpload.0.9.1的源码。(SunriseUpload.0.9.1的源码下载链接在我的博客上也有,请仔细阅读它的License)<BR>
4、目前不提供本组件的任何技术支持。所以暂时也不公开本人的联系方法。</FONT></P>
</TD>
</TR>
</table>
</body>
</html>
上传大文件实例
需积分: 0 132 浏览量
更新于2008-08-22
收藏 57KB RAR 举报
在ASP(Active Server Pages)开发环境中,上传大文件是一个常见的需求,尤其是在处理用户提交的数据时。这个"上传大文件实例"提供了一个解决方案,允许用户通过Web界面上传较大的文件。下面,我们将深入探讨ASP上传大文件的相关知识点。
1. **ASP基础**:ASP是微软开发的一种服务器端脚本环境,用于生成动态网页。它使用VBScript或JScript等脚本语言,将HTML、CSS和脚本结合,实现服务器端的交互功能。
2. **上传文件原理**:在HTTP协议中,表单数据默认是以ASCII格式发送的,而大文件通常超过此限制。因此,需要使用`multipart/form-data`编码方式,使得文件内容作为二进制数据传输,这样才能支持大文件上传。
3. **文件上传组件**:由于ASP原生不支持大文件上传,通常需要借助第三方组件,如WebbUploadSample。这类组件可以分块读取文件,避免一次性加载大文件到内存,从而有效防止内存溢出。
4. **WebbUploadSample组件**:这是一个专门用于ASP环境的文件上传组件,它提供了处理大文件上传的能力,可能包括断点续传、多文件同时上传等功能。使用该组件时,需要将其安装到服务器上,并在ASP代码中进行调用。
5. **配置IIS**:IIS(Internet Information Services)是微软的Web服务器,对上传文件大小有默认限制。为了能上传大文件,需要在IIS的站点设置中调整`maxRequestLength`和`executionTimeout`参数,以允许更大的文件上传和更长的执行时间。
6. **安全性考虑**:大文件上传不仅需要处理性能问题,还需要考虑安全性。例如,防止恶意用户上传病毒文件,应限制可上传的文件类型;为防止占用过多服务器空间,需设定上传文件的大小上限;同时,确保上传过程中数据的完整性,可能需要校验文件MD5值。
7. **用户交互设计**:在前端,应提供清晰的进度指示和错误提示,提升用户体验。此外,考虑到大文件上传可能耗时较长,可以添加暂停、取消上传的选项。
8. **异常处理**:在ASP代码中,必须捕获并处理可能出现的异常,如网络中断、文件读写错误等,确保系统稳定运行。
9. **存储策略**:上传的文件应存储在服务器的合适位置,可能需要考虑文件命名规则,防止文件重名;对于大量文件,可能需要设计数据库来管理文件元信息。
10. **优化与性能**:可以通过异步处理、多线程技术等方式提高上传效率。另外,使用云存储服务或者CDN(内容分发网络)可以进一步优化大文件的上传和访问速度。
以上是关于ASP上传大文件的一些核心知识点,实际应用时需要结合具体项目需求和环境进行调整。在开发过程中,充分理解这些概念并合理运用,能够帮助我们构建出高效、安全的大文件上传功能。
blue19850219
- 粉丝: 0
- 资源: 1