奇怪问题,一个通宵没搞定!不能创建对象?

是是非非 2004-10-17 05:13:29
<script language="JavaScript">
<!--
String.prototype.trim=function (){return this.replace((/(^\s+)|(\s+$)/),'');}
var AFT =new Array('jpg|gif|bmp|png|tif|tiff|pcx|jpeg|jpg', //图片
'doc|mdb|xls|ppt|txt|vis|rtf|wri|csv', //文档
'mp3|wav|rm|ram|mid|avi|rmvb|mpg|mpeg|wma|wmv|mov|asf|swf', //多媒体
'rar|cab|zip|arj|gzip|tar|gz|msi', //压缩包
'exe|com|dll', //程序
'asp|htm|html|js|vbs|aspx|php|wsh|htc|hta|inc', //危险
'iso|bin|jar|chm|hlp' //其他
);
/*
=================================================================================================
*/
function AnalyseFileName(obj){
var m_AFT=AFT[0]+'|'+AFT[1]+'|'+AFT[3];
var m_MaxSize=314572800;
if(typeof(obj)!='object'){
alert('调用错误');
return;}
//分析AFT列表
if(typeof(obj.allowedFileType)=='string'){
var strTest=obj.allowedFileType.trim();
if(strTest.length>0){
if((/^([a-z0-9]+\|)+$/img).test(strTest+'|')){
var arrTmp=strTest.split('|');
var AFT_ALL=AFT.join('|');
for(var iCnt=0;iCnt<arrTmp.length;iCnt++){
if(AFT_ALL.indexOf(arrTmp[iCnt]+'|')<0)
arrTmp[iCnt]='@@@';
}
strTest=arrTmp.join('|').replace(/^\@\@\@\|/mg,'').replace(/\|\@\@\@$/mg,'').replace(/\@\@\@|/mg,'');
m_AFT=strTest;
}else{
alert('allowedFileType设置错误');
ResetFileField(obj);
return;
}
}
}
obj.allowedFileType=m_AFT.toLowerCase();
//分析MS记录
if(typeof(obj.maxFileSize)=='string'){
var strTemp=obj.maxFileSize.trim();
if(strTemp.length>0){ //如果设置了这个
if((/^(\d+(\.\d+)?)(\s?)([bkmg]?)$/img).test(strTemp)){
var m_MS=parseFloat(RegExp.$1);
var m_DW=RegExp.$4;
switch(m_DW.toLowerCase()){
case 'b' : m_MS=parseInt(m_MS);break;
case 'k' : m_MS=parseInt(m_MS*1024);break;
case 'm' : m_MS=parseInt(m_MS*1024*1024);break;
case 'g' : m_MS=parseInt(m_MS*1024*1024*1024);break;
default : m_MS=parseInt(m_MS);break;
}
m_MaxSize=m_MS;
}else{
alert('maxFileSize设置错误');
ResetFileField(obj);
return;
}
}
}
obj.maxFileSize=m_MaxSize.toString();
//分析扩展名
var m_FilePath=obj.value.trim();
(/(\.)([a-z0-9]+)$/img).test(m_FilePath);
var m_ExtName=RegExp.$2.toLowerCase();
if((m_AFT+'|').indexOf(m_ExtName+'|')<0){
alert('只能上传支持的文件类型');
ResetFileField(obj);
return;
}
alert(__GetFileSizeOcx(m_FilePath));
}
//重新设置上传表单区域
function ResetFileField(obj){
var oCont=obj.parentElement;
oCont.innerHTML=oCont.innerHTML;
}
//获取文件大小
function GetFileSize(strPath){

}
function __GetFileSizeFso(strPath){
try{
var oFso=new ActiveXObject("Scripting.FileSystemObject");
}catch(e){
return -1;
}
try{
var oFile=oFso.GetFile(strPath);
}catch(e){return -1;}
var m_Fs=oFile.Size;
oFile=null;
oFso=null;
return m_Fs;
}
function __GetFileSizeOcx(strPath){
try{
var oOcx=new ActiveXObject("WebTools.FileSystem");
}catch(e){
return -1;
}
var m_Fs=oOcx.GetFileSize(strPath);
oOcx=null;
return m_Fs;
}
-->
</script>
<title></title>
</head>
<body>
<form action="" method="post" enctype="multipart/x-form-data">
<span><input type="file" name="UpFile" onchange="JavaScript:AnalyseFileName(this);"
allowedFileType="jpg|asp" maxFileSize="1m" /></span>
</form>
========================================
这个里面无法创建FSO对象
我自己写的一个组件也无法创建…………


请看下面的---》
...全文
99 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
是是非非 2004-10-18
  • 打赏
  • 举报
回复
便宜 天一 了
是是非非 2004-10-18
  • 打赏
  • 举报
回复
又是自己搞定的…………

IE安全设置问题


浪费100分,以后再也不发100分的帖子了
是是非非 2004-10-18
  • 打赏
  • 举报
回复
to yiyioo(天一):
返回-1就是创建失败,我把错误过滤掉了

oOcx=new ActiveXObject("WebTools.FileSystem"); 不是这个的问题
Scripting.FileSystemObject 同样创建不成功
yiyioo 2004-10-17
  • 打赏
  • 举报
回复
应该是 oOcx=new ActiveXObject("WebTools.FileSystem");
这个对象没建成功
yiyioo 2004-10-17
  • 打赏
  • 举报
回复
alert返回的值是-1是啥错
是上传失败吗?
没说不能创建对象啊
是是非非 2004-10-17
  • 打赏
  • 举报
回复
up
是是非非 2004-10-17
  • 打赏
  • 举报
回复
<script language="JavaScript">
<!--
function __GetFileSizeFso(strPath){
try{
var oFso=new ActiveXObject("Scripting.FileSystemObject");
}catch(e){
return -1;
}
try{
var oFile=oFso.GetFile(strPath);
}catch(e){return -1;}
var m_Fs=oFile.Size;
oFile=null;
oFso=null;
return m_Fs;
}
function __GetFileSizeOcx(strPath){
try{
var oOcx=new ActiveXObject("WebTools.FileSystem");
}catch(e){
return -1;
}
var m_Fs=oOcx.GetFileSize(strPath);
oOcx=null;
return m_Fs;
}
alert(__GetFileSizeFso('c:\\boot.ini'));
-->
</script>


==========================
这里的代码是从上面复制过来的

可以正常运行…………
两个组件都可以通过
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2004-10-17 05:13
社区公告
暂无公告