描述:
功能需求:完成的DLL能挂与ASP或JSP的网页中,读取客户端机器硬盘上的文本文 件 的内容.
如下:<OBJECT classid="CLSID:EBE49028-3405-4A48-9748-1BC9A5EB2301" id="LSOfficeCtl1" style="display:none; WIDTH: 1px; HEIGHT: 1px" CODEBASE="LSOffice.cab#version=1,0,1,0"></OBJECT>
调用的方法:<script language="VBScript">
function CmdView_OnClick()
thisForm.DDLString.value =LSOfficeCtl1.GetFileContent(thisForm.Form_URL.value)
end function
</script>
主要问题:Com组件Automation中好像返回值只能是HResult,ActiveX中只要能完成下面这样的功能就行了:(Delphi的语法)
function GetFileContent(FileName:string):WideString;
begin
Result:='aaaaaa';
end;
哪位高人对COM类组件开发有经验请帮个忙,本人QQ:9984273,MSN:mingjunr@hotmail.com
这个问题困挠我两周多啦,各位行行好吧,不胜感激!!
请客吃饭没问题啊,呵呵,我在海淀图书城,银科大厦9-11室
解决方案1:
加上了这个[out,retval],在<script >里调用返回值就是BSTR* FileData一个字符串了!应该是你想要的!
解决方案2:用ASP.Net吧,内建文件上传
解决方案3: 如果只是分析文件是否合法可以:
<script>
function UpLoadForm_Validator(pUpLoadForm)
{
if(document.all.UpLoadFile.value=="")
{
window.confirm("请选择上传的文档!");
pUpLoadForm.UpLoadFile.focus();
return false;
}
var strFileFormat=pUpLoadForm.UpLoadFile.value.match(/^(.*)(\.)(.{1,8})$/)[3];//检查上传文件格式
strFileFormat=strFileFormat.toUpperCase();
if(strFileFormat=="DOC"||strFileFormat=="DOT")
{
}
else
{
window.confirm("只能上传.Doc和.Dot,请重新选择!");
return false;
}
return true;
}
</script>
<form method="POST" enctype="multipart/form-data" action="" />
<input type="file" name="UpLoadFile" style="visibility:hidden;">
<input type=button />
<input type="submit" value="上传" name="UpLoadButton">
</form>