沒有辦法,實踐證明最好的解決辦法是自己寫一個OCX控制項,這樣就只要註冊一下OCX控制項就可以了,同時OCX控制項的可擴充性非常大,也就是給vc\delphi這些程式的功能引入到web中,其功能可想而知!
這裡不說明OCX開發的過程了,給自己寫的OCX控制項共用一下,希望能給一些朋友提供協助。
這個OCX控制項中提供了一個getFiles()方法,只要擷取控制項對象,然後調用getFiles()方法就可以擷取對應路徑下的所有檔案,如:
該控制項可以選擇任意盤符下的任意檔案夾,圖中最下面的按鈕時web中的input,通過web中的js方法來擷取檔案清單,OCX
的getFiles()方法返迴文件名串,樣式如1.jpg;2.jpg;3.jpg,每個檔案名稱中間用“;”連結,在js中使用split方法來分離一下就可以了。
頁面代碼如下:
複製代碼 代碼如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<script type="text/javascript"><!--
function show(){
var obj=document.getElementById("pathOcx");
var str=obj.getFiles();
var list=str.split(";");
for(var i=0;i<list.length;i++){
if(list[i]!=""){
alert(list[i]);
}
}
}
// --></script>
</head>
<body>
<OBJECT
id="pathOcx"
classid="clsid:13BF0862-063C-432F-A8DF-07C2823E8562"
width=420
height=300
align=center
hspace=0
vspace=0
>
</OBJECT>
<br>
<input type="button" name="Submit" value="顯示資料" onClick="show()">
</body>
</html>
這樣就可以使用該控制項選取任意檔案夾了,並且可以通過js擷取檔案夾中的所有內容,由於篇幅有限,這裡不對該OCX更多的功能做說明,下篇準備給OCX增加上傳功能,這樣既可以上傳整個檔案夾,而且支援斷點續傳。
最後註明:OCX使用的時候需要註冊控制項
註冊方法:運行cmd,進入比如OCX控制項在C:\123.OCX,在cmd中運行RegSvr32 c:\123.OCX,會提示註冊成功,然後就可以在網頁中使用了!
打包下載