日期:2014-05-17  浏览次数:21059 次

百分求解一个可能涉及比较多的一个问题,求熟悉javascript或者ASP无组件上传或者AJAX等等的高手帮忙解答,非常感谢!!
目的:想实现客户端免输入验证码自动登录相关系统,从而实现一站式登录。
因为需要实现前台登录,故验证码必须在前台显示后再上传到服务器,由后端程序验证后再返回前台并触发自动登录。现在下述代码已经可以将验证码保存到客户电脑上“c:\\yzm.png”,但由于IE安全限制,无法实现自动把该文件上传到服务器上,故有此一问。具体问题在下面实例中的备注项已说明,求高人指点,或者提供其他解决办法或思路,谢谢!

<script LANGUAGE="JavaScript">
//本段代码是内部系统的一部分,本系统已放入受信任站点,用户端IE的安全性已经降低到最小。

window.onload=function(){
  var oHTTP = new ActiveXObject("Microsoft.XMLHTTP");
  var oStream = new ActiveXObject("adodb.stream");
  oStream.type = 1;
  oStream.mode = 3;
  oHTTP.open("GET", "http://xxx.com/yzm.png", false);
  oHTTP.send();
  if(oHTTP.status!=404) {
  oStream.open();
  oStream.write(oHTTP.responseBody); //这里是否可以实现js获取的值直接赋给表单form1中的yzmurl??
  oStream.savetofile("c:\\yzm.png", 2); //如果实现上面的要求这句保存到本地似乎就没有必要了吧
  document.form1.submit(); //然后自动提交本表单上传验证码图片实现后台识别验证码的过程
  }
}
</script>
<form name='form1' method='post' action='验证码识别.asp' enctype="multipart/form-data" target="small">
这样写? <input name='yzmurl' type='hidden' value='' />
还是这样写? <input name='yzmurl' type='file' />
还是应该? ……
</form>
<iframe name="small" border="0"></iframe>
<form name='form2' method='post' action='获取验证值后登录系统.asp' target="_self">
<input name='yzmzhi' type='hidden' value='' />
</form>

验证码识别.asp接收到前台上传的图片后进行验证,验证后将结果返回到form2中的yzmzhi,同时触发form2.submit,实现自动登录到该系统。

------解决方案--------------------
验证码是让你在文本框中输入的,不是上传图片吧~~~

不太明白你的意思啊~~
------解决方案--------------------
可以用免费的WebOffice控件,http://www.dianju.com.cn/pc/products-weboffice.php 可以调用其函数上传本地文件(普通的HTTP方式上传)。