输入文件 - 如果没有更改,请保留先前的文件

时间:2014-09-03 10:07:39

标签: javascript jquery html

当用户点击input['type="file"']并选择文件时...文件已附加。但是,如果用户再次单击输入并浏览文件但未选择一个并关闭对话框,则所选文件将消失(输入文件重置)。有没有办法阻止它?

2 个答案:

答案 0 :(得分:1)

我非常确定浏览器会将其限制为安全功能,以防止用户在未先选择文件的情况下上传文件。我知道它是第一次被选中,但你可以看到如果我们能够设置值属性或者在输入字段击中后重新填充输入字段,可以恶意使用它#34;取消"第二次。

答案 1 :(得分:1)

正如Eliel所说出于安全原因不建议这样做,例如:第二次如果保留路径值但文件变为恶意文件则是纯粹不安全的

但我告诉你如何在这里保留旧路径值

var file_name = this.value;
$('input[type="file"]').on('change', function (event, files, label) {
    file_name = this.value;  
});

没有直接的方法来查找是否在对话框上单击了取消(未向浏览器公开)

但请使用此

document.body.onfocus = function(){
 document.getElementById('#fileInput').value = file_name;
} // to detect dialog closed

然后在下次打开对话框时将值设置为file_name(仅适用于带有以下插件的Firefox)

var pageMod = require('page-mod');
var self = require('self');

pageMod.PageMod({
    include: "url of app",
    contentScriptFile: [self.data.url('url of script file'), 
self.data.url('url of script file'),...]
});

价:https://forums.mozilla.org/addons/viewtopic.php?p=25153&sid=b6380f9e2acbf759e8833979561dd6f1

希望有所帮助