Thow to use the AspnetUpload control 2.1
AspnetUpload是一个用于上传大文件的ASP.net控件,你可以在这里下载到试用版本:http://www.aspnetupload.net/
里面有一个帮助文件,虽然这个控件是国内的一家公司开发的,但处于某些原因,它的官方网站和说明都是英文的(我很理解)。
下载后,只有一个文件是必须的:Bestcomy.Web.Controls.Upload.dll
其它的是演示文件,可以自己做。
名字空间:Bestcomy.Web.Controls.Upload
其它包括5个类和一个枚举。
Classed:
AspnetUplad
Progress
UploadFile
UploadFileCollection
UploadModule
Enumerations:
Enumeration
这些类的说明和使用在帮助里都有说明,只是没有例子。我觉得它的帮助应该像MS的那样多少都应该有一些实例在上面。虽然在它的下载文件里有两个实例,一个单文件上传一个多文件上传,但我真的还是觉得应该在帮助里能能一些说明,特别是一些基本的用法。
分析一下它自己带的两个例子:
例1:SingleUpload.aspx中的核心代码:
<form id="Form1" method="post" enctype="multipart/form-data" runat="server">
<div id="wrap">
<div id="main-body">
<div id="content">
<div class="entry single">
<h2>Single upload with fields - no progress bar</h2>
<strong>Description:</strong><br>
<asp:TextBox ID="box_descript" TextMode="MultiLine" Width="300" Rows="5" Runat="server" /><br>
<strong>File to upload:</strong><br>
<input type="file" ContentEditable="false" size="40" name="file1">
<asp:Button ID="btn_upload" Text="Upload..." Runat="server" /><br>
<br>
</div>
<asp:Literal ID="txt" EnableViewState="False" Runat="server" />
</div>
</div>
</div>
</form>
SingleUpload.aspx.cs中的核心代码:
private void Page_Load(object sender, System.EventArgs e)
{
AspnetUpload upldr = new AspnetUpload();
//Register process bar
//upldr.RegisterModelessProgressBar(btn_upload);
string fpath = Path.Combine(Server.MapPath("."),"Upload");
if(!Directory.Exists(fpath))
Directory.CreateDirectory(fpath);
upldr.set_UploadFolder(fpath);
}
private void btn_upload_Click(object sender, System.EventArgs e)
{
AspnetUpload upldr = new AspnetUpload();
UploadFile file = upldr.GetUploadFile("file1");
if(file != null)
{
string fpath = Path.Combine(Server.MapPath("."),"Upload");
fpath = Path.Combine(fpath,Path.GetFileName(file.get_FileName()));
file.SaveAs(fpath);
}else{
//you can give some error message.
}
}
感觉比ASP里的上传组件还要简单,但它的速度是很快的。我试了几次,本机的上传速度可以达4MB/s,而在Internet上,其上传速度与FTP的速度不相上下。
文章来源: http://computer.mblogger.cn/wucountry/posts/46076.aspx