冲击多个Input File赋值兼解决中文赋值问题

网上搜索了半天也没有完整的解决方案。
用此方法需要添加到信任站点或解除未签名的ActiveX控件的禁用

项目需求是自动搜索客户端的图片,找到合适的自动上传(理论上能上
传任何东西)前提就是上面提到的.
用这个方法经测试成功.上传OK!(注意不安全哟,不要用此做坏事哟,
此源码只做交流,请不要用于非法用途)

大概写一下流程:


< HTML >
 
< HEAD >
  
< TITLE >  冲击多个Input File赋值兼解决中文赋值问题  </ TITLE >
< SCRIPT  LANGUAGE ="JavaScript" >
//简化写法
function $(id)
{
    
return document.getElementById(id);
}

//崋值方法(就是将文本框的值赋值file对象)
function set1()
{
    
//将text1中的值复制到剪贴板中
    window.clipboardData.setData('text',$('t1').value); 
    
//创建Shell(需要添加到信任站点或解除未签名的ActiveX控件的禁用
    var   WshShell=new   ActiveXObject("WScript.Shell");  
    
//拿到焦点
    $('f1').focus();
    
//Ctrl + A 操作
    WshShell.sendKeys("^a");
    
//Ctrl + V 操作(sendKeys对于中文赋值操作显得无力,所以只能模拟键盘操作)
    WshShell.sendKeys("^v");
}


function set2()
{
    window.clipboardData.setData('text',$('t2').value); 
    
var   WshShell=new   ActiveXObject("WScript.Shell");  
    $('f2').focus();
    WshShell.sendKeys(
"^a");
    WshShell.sendKeys(
"^v");
}


function set3()
{
    window.clipboardData.setData('text',$('t3').value); 
    
var   WshShell=new   ActiveXObject("WScript.Shell");  
    $('f3').focus();
    WshShell.sendKeys(
"^a");
    WshShell.sendKeys(
"^v");
}


function set4()
{
    window.clipboardData.setData('text',$('t4').value); 
    
var   WshShell=new   ActiveXObject("WScript.Shell");  
    $('f4').focus();
    WshShell.sendKeys(
"^a");
    WshShell.sendKeys(
"^v");
}

//给当前网页中四个file对象赋值的方法
function set()
{
    
//此处不要用循环,有几个就需要写几个setXX方法
    setTimeout("set1()",0);
    setTimeout(
"set2()",70);
    setTimeout(
"set3()",240);
    setTimeout(
"set4()",340);
}

//检查是否赋值成功
function check()
{
    
//检查每个file对象是否为空 
    if($('f1').value.length > 0 && $('f2').value.length > 0 && $('f3').value.length > 0 && $('f4').value.length > 0 )
    
{
        
//检查原对象的值的赋值对象的值是否相同
        if($('f1').value == $('t1').value && $('f2').value == $('t2').value && $('f3').value == $('t3').value && $('f4').value == $('t4').value)
        
{
            
return true;
        }

        
else
        
{
            
return false;
        }

    }

    
else
    
{
        
return false;
    }

}

//赋值和file对象的检查
function setValues()
{
    
if(!check())
    
{
        set();
    }

}

//直接调用的赋值方法
function callSet()
{
    
//一定要用setInterval,而不能用循环(循环太快,会造成所有的值赋在一个file对象上)
    setInterval('setValues()',1000);
}


 
</ SCRIPT >
 
</ HEAD >

 
< BODY >
    
< input  type =text  value ='c:\a好.jpg'  id ='t1'  />   < br  />
    
< input  type =text  value ='b:\b不好.jpg'  id ='t2' />   < br  />
    
< input  type =text  value ='c:\c好.jpg'  id ='t3' />   < br  />
    
< input  type =text  value ='d:\c很好.jpg'  id ='t4' />   < br  />

    
< input  type =file  id ='f1' />   < br  />
    
< input  type =file  id ='f2' />   < br  />
    
< input  type =file  id ='f3' />   < br  />
    
< input  type =file  id ='f4' />   < br  />
    
    
< input  type ='button'  id ='btn1'  onclick ='callSet();'  value ='测试' >
 
</ BODY >
</ HTML >
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值