Sharepoint中可以批量上传文件。分析页面中,使用了客户端控件STSUPLD.DLL,安装了Office就会有(至于版本我没有研究,反正03以上都支持),该文件位于C:/Program Files/Microsoft Office/Office12。
这样我们就可以想象,能不能在自己的程序或者网站中使用呢?
写一个最简单的页面,html即可,代码如下:
<body>
<FORM NAME="frmUpload" METHOD="post">
<OBJECT id=idUploadCtl name=idUploadCtl
CLASSID=CLSID:07B06095-5687-4d13-9E32-12B4259C9813
WIDTH='100%' HEIGHT='350px'>
</OBJECT>
</FORM>
</body>
保存后,用IE打开,并不能正常显示。但是有一个很奇怪的现象,将保存的文件放置于sp目录,登录后可以正常显示,比如放到_layouts目录,在登录以后输入相应的路径,可以正常显示。
于是开始研究。
两个方向:首先,将上述代码修改一下:
<body>
<script>
try
{
if(new ActiveXObject("STSUpld.UploadCtl"))
document.write("<OBJECT id=idUploadCtl name=idUploadCtl CLASSID=CLSID:07B06095-5687-4d13-9E32-12B4259C9813 WIDTH='100%' HEIGHT='350px'></OBJECT>");
}
catch(error){alert("Can't Create Object.");}
</script>
</body>
使用IE打开,提示不能创建对象。
其次,将其放入layouts文件夹,使用MOSS打开,居然也提示不能创建对象。怎么回事?
这时先使用IE打开MOSS首页,再打开我们的html文件(同一进程),你会发现不管是放在文件系统中的html还是layouts中的,均可以正常显示了。
好了,目标找到:MOSS对于IE进程有一些设置。
稍后继续分析。