记录Telerik学习过程~
今天记录的是Upload.
你可以使用RadUpload与ASP.NET的自定义验证器。 CustomValidator验证同时支持客户端和服务器端验证。
验证客户端的好处是可以防止的CustomValidator验证时提交的文件有选择的客户端验证函数认为无效的页面。验证功能可以使用validateExtensions()客户端的方法来验证客户端上的文件扩展名。选定的文件必须转移到服务器才能的尺寸或MIME类型的验证。
验证服务器端的优点是您可以访问文件,如大小或MIME类型,甚至检查文件内容的信息。自定义验证器的ServerValidate事件发生后,RadUpload ValidatingFile事件,并有完整的验证。
当使用一个CustomValidator验证,验证器的ControlToValidate属性RadUpload不得设置!
(语言组织能力不好,还是 上代码,上图片 好!)
先上图:
Upload控件需要几个js的支持, Telerik 的 dll 自带了需要的js.
代码
<
telerik:RadScriptManager ID
=
"
ScriptManager1
"
runat
=
"
server
"
>
< Scripts >
< asp:ScriptReference Assembly = " Telerik.Web.UI " Name = " Telerik.Web.UI.Common.Core.js " />
< asp:ScriptReference Assembly = " Telerik.Web.UI " Name = " Telerik.Web.UI.Common.jQuery.js " />
< asp:ScriptReference Assembly = " Telerik.Web.UI " Name = " Telerik.Web.UI.Common.jQueryInclude.js " />
</ Scripts >
</ telerik:RadScriptManager >
< Scripts >
< asp:ScriptReference Assembly = " Telerik.Web.UI " Name = " Telerik.Web.UI.Common.Core.js " />
< asp:ScriptReference Assembly = " Telerik.Web.UI " Name = " Telerik.Web.UI.Common.jQuery.js " />
< asp:ScriptReference Assembly = " Telerik.Web.UI " Name = " Telerik.Web.UI.Common.jQueryInclude.js " />
</ Scripts >
</ telerik:RadScriptManager >
页面代码
<
div
class
=
"
MainWrap
"
>
< div class = " TopWrap " >
< div class = " Holder " >
< telerik:RadAsyncUpload runat = " server " ID = " RadAsyncUpload1 " AllowedFileExtensions = " jpg,jpeg,png,gif "
MaxFileSize = " 1048576 " OnClientValidationFailed = " validationFailed " OnValidatingFile = " RadAsyncUpload1_ValidatingFile "
OnFileUploaded = " RadAsyncUpload1_FileUploaded " InputSize = " 42 " Skin = " Windows7 " >
</ telerik:RadAsyncUpload >
< asp:Button runat = " server " ID = " BtnSubmit " Text = " 上传 " />
< p >
选择要上传的图片 (jpg, jpeg, png, gif)
</ p >
< p >
图片最大不能超过 1M 大小.
</ p >
< div class = " ErrorHolder " >
</ div >
</ div >
< div class = " Holder Right " >
< asp:Panel runat = " server " ID = " ResultsPanel " Visible = " false " >
< asp:Panel ID = " ValidFiles " Visible = " false " runat = " server " >
< p >
< strong > 图像保存到目标文件夹: / File /</ strong >
</ p >
</ asp:Panel >
< asp:Panel ID = " InvalidFiles " Visible = " false " runat = " server " >
< p >
< strong > 下面的图片不被保存,由于超过最大大小: </ strong >
</ p >
</ asp:Panel >
</ asp:Panel >
</ div >
< div class = " BottomWrap " >
</ div >
</ div >
</ div >
< div class = " TopWrap " >
< div class = " Holder " >
< telerik:RadAsyncUpload runat = " server " ID = " RadAsyncUpload1 " AllowedFileExtensions = " jpg,jpeg,png,gif "
MaxFileSize = " 1048576 " OnClientValidationFailed = " validationFailed " OnValidatingFile = " RadAsyncUpload1_ValidatingFile "
OnFileUploaded = " RadAsyncUpload1_FileUploaded " InputSize = " 42 " Skin = " Windows7 " >
</ telerik:RadAsyncUpload >
< asp:Button runat = " server " ID = " BtnSubmit " Text = " 上传 " />
< p >
选择要上传的图片 (jpg, jpeg, png, gif)
</ p >
< p >
图片最大不能超过 1M 大小.
</ p >
< div class = " ErrorHolder " >
</ div >
</ div >
< div class = " Holder Right " >
< asp:Panel runat = " server " ID = " ResultsPanel " Visible = " false " >
< asp:Panel ID = " ValidFiles " Visible = " false " runat = " server " >
< p >
< strong > 图像保存到目标文件夹: / File /</ strong >
</ p >
</ asp:Panel >
< asp:Panel ID = " InvalidFiles " Visible = " false " runat = " server " >
< p >
< strong > 下面的图片不被保存,由于超过最大大小: </ strong >
</ p >
</ asp:Panel >
</ asp:Panel >
</ div >
< div class = " BottomWrap " >
</ div >
</ div >
</ div >
点击客户端代码
<
script type
=
"
text/javascript
"
>
function validationFailed(sender, eventArgs) {
$( " .ErrorHolder " ).append( " <p>验证失败 ' " + eventArgs.get_fileName() + " '.</p> " ).fadeIn( " slow " );
}
</ script >
function validationFailed(sender, eventArgs) {
$( " .ErrorHolder " ).append( " <p>验证失败 ' " + eventArgs.get_fileName() + " '.</p> " ).fadeIn( " slow " );
}
</ script >
后台代码
const
int
MaxTotalBytes
=
1048576
;
//
1 MB
int totalBytes;
protected void Page_Load( object sender, EventArgs e)
{
if (IsPostBack)
{
ResultsPanel.Visible = true ;
}
}
public void RadAsyncUpload1_FileUploaded( object sender, FileUploadedEventArgs e)
{
Label fileName = new Label();
fileName.Text = e.File.FileName;
e.File.SaveAs(Server.MapPath( " ../file/ " + e.File.FileName), true ); // 保存文件
if (e.IsValid)
{
ValidFiles.Visible = true ;
ValidFiles.Controls.Add(fileName);
}
else
{
InvalidFiles.Visible = true ;
InvalidFiles.Controls.Add(fileName);
}
}
public void RadAsyncUpload1_ValidatingFile( object sender, Telerik.Web.UI.Upload.ValidateFileEventArgs e)
{
if (totalBytes < MaxTotalBytes)
{
// 没有达到限制的总字节数,运行文件上传
e.IsValid = true ;
totalBytes += e.UploadedFile.ContentLength;
}
else
{
// 达到限制的总字节数,放弃文件上传
e.IsValid = false ;
}
}
int totalBytes;
protected void Page_Load( object sender, EventArgs e)
{
if (IsPostBack)
{
ResultsPanel.Visible = true ;
}
}
public void RadAsyncUpload1_FileUploaded( object sender, FileUploadedEventArgs e)
{
Label fileName = new Label();
fileName.Text = e.File.FileName;
e.File.SaveAs(Server.MapPath( " ../file/ " + e.File.FileName), true ); // 保存文件
if (e.IsValid)
{
ValidFiles.Visible = true ;
ValidFiles.Controls.Add(fileName);
}
else
{
InvalidFiles.Visible = true ;
InvalidFiles.Controls.Add(fileName);
}
}
public void RadAsyncUpload1_ValidatingFile( object sender, Telerik.Web.UI.Upload.ValidateFileEventArgs e)
{
if (totalBytes < MaxTotalBytes)
{
// 没有达到限制的总字节数,运行文件上传
e.IsValid = true ;
totalBytes += e.UploadedFile.ContentLength;
}
else
{
// 达到限制的总字节数,放弃文件上传
e.IsValid = false ;
}
}
很多属性, 我就不多做介绍~ 因为我相信你的理解能力, 而且这些属性不难理解, 对吧~!!
!!