网上搜索了半天也没有完整的解决方案。
用此方法需要添加到信任站点或解除未签名的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>
分享到:
相关推荐
解决无法为FIle控件赋值的问题!并且支持中文赋值问题。
编辑页面上能给input自动赋值.zip包中例子。
解决无法为FIle控件赋值的问题!并且支持中文赋值问题
出于安全性考虑,JS是不能直接设置File的value值的,下面是我总结出来的方法
主要介绍了jQuery实现input[type=file]多图预览上传删除等功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
NULL 博文链接:https://liyoro.iteye.com/blog/829896
就是关于HtmlInputFile的一些代码。
本文实例讲述了jQuery中:file选择器用法。分享给大家供大家参考。具体分析如下: 此选择器能够选取类型为file的<input>元素。 语法结构: 代码如下:$(“:file”) 实例代码: 代码如下: <!DOCTYPE html> <...
js获得file根目录,然后赋值给hidden类型input,然后就可以交给php or jsp 处理了,感兴趣的朋友可以参考下哈,希望可以帮助到你
input type=”file”/>)用于在客户端浏览并上传文件,用户选取的路径可以由value属性获取,但value属性是只读的,不能通过 javascript来赋值,这就使得不能通过value=””语句来清空它。很容易理解为什么只读,...
(补充其他工具:Union,把多个图斑联合起来并形成一个新的连接在一起的图斑,原图斑无变化,联合后的图斑不继承原任何图斑的属性;Merge,把多个图斑合并到其中一个图斑上并继承它的属性,原图斑变化;Split用于间断...
SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统<input type="file" />标签的文件上传模式。 [编辑本段]SWFUpload...
最近在使用layui框架做城市的三级级联的时候,发现jquery中的onchange事件方法在layui框架中失效了。 然后浏览layui社区,了解...对于动态拼接,给一个控件赋值的是否,layer也比jquery多一步。 jquery: $('#city').a
在前面给大家写个有关文件上传的文章,包括最基本的yii2文件上传、异步上传到又拍云以及百度编辑器图片上传的问题,貌似不说点多图上传的就不完美。 今天介绍一款多图上传的插件 FileInput,至于为什么选中了TA作为...
C/S 操作IE浏览器页面的DOM元素赋值 修改INPUT 值 修改CHECKBOX值 修改FILE值
分为两步:当上传图片的input被触发并选择本地图片之后获取要上传的图片这个对象的URL(对象URL);把对象URL赋值给事先写好的img标签的src属性即可把图片显示出来。 在这里,我们需要了解Javascript里File对象、...
input type=”file”>。 注意:当一个表单包含<input type=”file”>时,表单的enctype必须指定为multipart/form-data,method必须指定为post,浏览器才能正确编码并以multipart/form-data格式发送表单的...
"input the file name: "; string file_name; cin >> file_name; cout << endl; // ifstream infile("1.txt"); ifstream infile(file_name.c_str()); string line; while (std::get
因此可连续多次使用fgetc函数,读取多个字符。 应注意文件指针和文件内部的位置指针不是一回事。文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值是不变的。文件内部的位置指针用以...