异步文件上传C:\fakepath\ 问题解决

在用到weboffice控件上传文件附件的时候,出现了C:\fakepath\的问题,就是有的机器可以上传,有的机器不能上传,这个问题首先跟IE的设置有关系。
在用到webObj.HttpAddPostFile("attachment", document.getElementById("attachment").value);出现文件上传不能上传问题。
首先可以通过修改浏览器的安全级别,步骤是:

工具 -> Internet选项 -> 安全 -> 自定义级别 -> 找到“其他”中的“将本地文件上载至服务器时包含本地目录路径”,选中“启用”即可。

当然上述的方法肯定不可取,总不能让每一个用户都修改ie配置吧,下面给出一种用js代码修改的方法
兼容ie ,firefox全系列


   function getPath(obj)  
	{  
	 if(obj)  
    {  
	    if (window.navigator.userAgent.indexOf("MSIE")>=1)  
	    {  
	      obj.select();  
      return document.selection.createRange().text;  
	      }  
	    else if(window.navigator.userAgent.indexOf("Firefox")>=1)  
	      {  
	     if(obj.files)  
	       {  
	       return obj.files.item(0).getAsDataURL();  
     }  
	   return obj.value;  
    }  
  return obj.value;  
	 }  
	}  


修改后代码:
webObj.HttpAddPostFile("attachment", getPath(document.getElementById("attachment")));

你可能感兴趣的:(JavaScript,weboffice,webobj,fakepath)