变相激发FileUpload事件
最近用到FileUpload控件上传资源,需要在本地选择资源时为一个文本框赋值,将选择本地资源的路径名称赋值给文本框内,由于FileUpload控件并没有事件,所以现在我们所能用到的只能是教本触发事件来达到我们的要求,在网上找了n天资料发现有的朋友使用给FileUpload控件添加Attributes,来加载onpropertychange事件,具体代码如下(这句要在页面加载的时候执行):
FileUpload1.Attributes.Add("onpropertychange", "test2();");
这里的text2是在客户端写的JavaScript函数,内容如下:
function test2()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
if(fso.GetExtensionName(form1.FileUpload1.value).toLowerCase()!="jpg"&&fso.GetExtensionName(form1.FileUpload1.value).toLowerCase()!="bmp")
{
alert("请选择jpg、bmp格式的文件!");
}
else
{
form1.HiddenField3.value=form1.FileUpload1.value;
document.all('TextBox4').value=form1.FileUpload1.value;
}
}
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
if(fso.GetExtensionName(form1.FileUpload1.value).toLowerCase()!="jpg"&&fso.GetExtensionName(form1.FileUpload1.value).toLowerCase()!="bmp")
{
alert("请选择jpg、bmp格式的文件!");
}
else
{
form1.HiddenField3.value=form1.FileUpload1.value;
document.all('TextBox4').value=form1.FileUpload1.value;
}
}
TextBox4为需要赋值的服务器文本控件。这样就可以实现我们的要求了。
注意:这里因为要对选择文件的格式进行判断,我们使用了var fso = new ActiveXObject("Scripting.FileSystemObject"),由于在创建Scripting.FileSystemObject时需要IE的权限,具体配置看我前段事件写的“automation服务器不能创建对象 ”的文章。