Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过Javascript从文件对话框中选择和上载本地图像文件_Javascript_Greasemonkey_Userscripts - Fatal编程技术网

如何通过Javascript从文件对话框中选择和上载本地图像文件

如何通过Javascript从文件对话框中选择和上载本地图像文件,javascript,greasemonkey,userscripts,Javascript,Greasemonkey,Userscripts,我可以通过Javascript从文件对话框中选择并上传本地图像文件吗?我正试图使用UserScript来实现这一点 我可以通过以下代码打开文件对话框: function performClick(node) { var evt = document.createEvent("MouseEvents") evt.initEvent("click", true, false) node.dispatchEvent(evt) } performClick(document.getE

我可以通过Javascript从文件对话框中选择并上传本地图像文件吗?我正试图使用UserScript来实现这一点

我可以通过以下代码打开文件对话框:

function performClick(node) {
   var evt = document.createEvent("MouseEvents")
   evt.initEvent("click", true, false)
   node.dispatchEvent(evt)
}

performClick(document.getElementById('fld_images'))
但是上传呢?可能吗?也许是HTML5

提前感谢。

您需要使用文件输入,然后一旦您有了文件句柄,就可以使用fileReader访问文件。由于安全原因,JavaScript无法直接从用户驱动器中选择文件

<input type="file" id="fileInput" />


$('#fileInput').on('change', function() {
    alert(this.files)
})
此.file[0]将是您的第一个文件


请参阅:

如果您的文件字段可见,则代码应该可以工作。它可能不起作用,因为您已使文件字段不可见。答案是肯定的

尝试将上传字段设置为位置:绝对;顶部:-100px

HTML

CSS


也许你可以将你的图像文件转换成一个数据url,然后用JS来填充文件输入的值。仅当用户单击字段时,更改事件才会触发。问题是关于触发点击事件
<input type="file" id="fld_images">
<button id="button">Upload</button>
function performClick(node) {
   var evt = document.createEvent("MouseEvents");
   evt.initEvent("click", true, false);
   node.dispatchEvent(evt, true);
}
document.getElementById('button').addEventListener('click', function(){
    performClick(document.getElementById('fld_images'));
});
#fld_images{ position:absolute; top:-100px; }