<script language=vbscript>
Function bytes2BSTR(vIn)
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function
</script>
<script language="JavaScript">
function f(){
var xmlUrl = new ActiveXObject('Microsoft.XMLHTTP');
var r;
var filepath= document.getElementById("fileField").value
//alert(filepath);
xmlUrl.Open('GET',filepath);
xmlUrl.Send();
r=bytes2BSTR(xmlUrl.ResponseBody);
document.getElementById("Content").value = r;
}
</script>
<input type="file" name="fileField" id="fileField" />
<input type="button" name="button" id="button" value="按钮" onclick="f()" />
<textarea id="Content" name="Content" rows="30" cols="30"></textarea>
本地执行没有问题,一放到服务器上用http://形式运行就报错,说没有权限,谢谢指点!
------解决方案--------------------
必须的,这是安全问题。要是你随意访问一个网站,爱情动作放哪个盘别人都知道了,你还有什么隐私?
------解决方案--------------------
------解决方案--------------------
问题出在 这句代码上 var xmlUrl = new ActiveXObject('Microsoft.XMLHTTP');
这是调用客户端的ActiveX插件,所以会禁止访问.
解决方案:
1、将该地址放到信任站点,将信任站点的安全级别降到最低(不推荐).
2、使用文件上传传到服务器端,通过后台语言取文件内容后赋值给textrea。可以AJAX。
------解决方案--------------------
要不然用户也要选择要读取的文件不是吗,你可以做选择完就后台读取啊.走Ajax就是了.
设安全级别不可取,重做系统或升级IE后就白设了.