输入文件 - 如果未更改,请保留以前的文件

问题描述:

当用户点击input['type="file"']并选择一个文件...文件附加。但是,如果用户再次单击输入并浏览文件但不选择一个并关闭对话框,则所选文件将消失(输入字段重置)。有什么办法可以防止这种情况发生?输入文件 - 如果未更改,请保留以前的文件

+1

后一些代码片段,以便我们可以帮助精确 – Khaleel 2014-09-03 10:12:46

+2

检查此答案http://*.com/questions/1043957/clearing-input-type-file-using-jquery它可能会帮助完整 – BPT 2014-09-03 10:20:01

我敢肯定,这被浏览器限制为安全功能,以防止用户无需首先选择文件即可上传文件。我知道它是第一次被选中,但是如果我们能够设置值属性或者在第二次点击“取消”后重新填充输入字段,您可以看到如何恶意使用它。

为伊利尔称,不建议为了安全起见,防爆这样做:第二次,如果您保留路径值,但该文件被更改为恶意一方面,这是一个纯粹的不安全

但我展示你如何留住这里

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

希望它可以帮助