变相激发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;
      }

}

TextBox4为需要赋值的服务器文本控件。这样就可以实现我们的要求了。
注意:这里因为要对选择文件的格式进行判断,我们使用了var fso = new ActiveXObject("Scripting.FileSystemObject"),由于在创建Scripting.FileSystemObject时需要IE的权限,具体配置看我前段事件写的“automation服务器不能创建对象 ”的文章。

posted on 2007-05-18 22:20  石川  阅读(616)  评论(1编辑  收藏  举报