變相激發FileUpload事件

weixin_34015860發表於2019-01-08

最近用到FileUpload控制元件上傳資源,需要在本地選擇資源時為一個文字框賦值,將選擇本地資源的路徑名稱賦值給文字框內,由於FileUpload控制元件並沒有事件,所以現在我們所能用到的只能是教本觸發事件來達到我們的要求,在網上找了n天資料發現有的朋友使用給FileUpload控制元件新增Attributes,來載入onpropertychange事件,具體程式碼如下(這句要在頁面載入的時候執行):

None.gifFileUpload1.Attributes.Add("onpropertychange""test2();");

這裡的text2是在客戶端寫的JavaScript函式,內容如下:

None.giffunction test2()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif      var fso 
= new ActiveXObject("Scripting.FileSystemObject");
InBlock.gif      
if(fso.GetExtensionName(form1.FileUpload1.value).toLowerCase()!="jpg"&&fso.GetExtensionName(form1.FileUpload1.value).toLowerCase()!="bmp")
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif        alert(
"請選擇jpg、bmp格式的檔案!");
ExpandedSubBlockEnd.gif      }

InBlock.gif      
else
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif        form1.HiddenField3.value
=form1.FileUpload1.value;
InBlock.gif        document.all(
'TextBox4').value=form1.FileUpload1.value;
ExpandedSubBlockEnd.gif      }

ExpandedBlockEnd.gif}

TextBox4為需要賦值的伺服器文字控制元件。這樣就可以實現我們的要求了。
注意:這裡因為要對選擇檔案的格式進行判斷,我們使用了var fso = new ActiveXObject("Scripting.FileSystemObject"),由於在建立Scripting.FileSystemObject時需要IE的許可權,具體配置看我前段事件寫的“automation伺服器不能建立物件 ”的文章。

相關文章