Javascript IE 11使用HTML输入=文件标记时锁定文件

Javascript IE 11使用HTML输入=文件标记时锁定文件,javascript,internet-explorer-11,Javascript,Internet Explorer 11,我在IE11的文件输入中使用browse选择文件 我在资源管理器中使用shift+delete删除了该文件 然后,当我刷新文件夹时,我删除的文件再次出现在资源管理器中 我是否可以在客户端javascript上释放文件句柄?我在IE8中尝试了那个测试,但那个问题没有发生 非常感谢任何帮助。我可以在IE 11中释放文件处理程序,如下所示 document.getElementById("fileToUpload").value=""; // input file field docu

我在IE11的文件输入中使用browse选择文件

  • 我在资源管理器中使用shift+delete删除了该文件

  • 然后,当我刷新文件夹时,我删除的文件再次出现在资源管理器中

  • 我是否可以在客户端javascript上释放文件句柄?我在IE8中尝试了那个测试,但那个问题没有发生


    非常感谢任何帮助。

    我可以在IE 11中释放文件处理程序,如下所示

        document.getElementById("fileToUpload").value=""; // input file field
        document.getElementById("uploadForm").reset(); // form that containing input file field
    

    我还可以通过设置
    inputElement.value=”“
    来释放文件处理程序,但我想添加一些细节:

    通过反复试验,我最终发现只有在您不以任何方式引用
    inputElement.files
    的情况下,这种方法才有效。这甚至包括检查它的存在。为了防止IE11死机缠身,我最后做了这样的事情:

    // html
    <form id="formID">
      <input
        id="inputID"
        name="file"
        type="file"
      />
    </form>
    
    // javascript
    var formData = new FormData(document.getElementById("formID"));
    someBackendService.someUploadFileMethod(formData).then(function() {
      var inputElement = document.getElementById("inputID");
      inputElement.value = "";
    }
    
    //html
    //javascript
    var formData=新的formData(document.getElementById(“formID”);
    someBackendService.someUploadFileMethod(formData).then(function()){
    var inputElement=document.getElementById(“inputID”);
    inputElement.value=“”;
    }
    
    只要文件数据保存在
    FormData
    对象中,IE11就会释放锁。不幸的是,使用此设置,我无法找到支持上载多个文件或拖放的方法

    测试文件是否已锁定的一种简单方法是尝试重命名上载文件的来源目录。另一种方法是使用Windows附带的资源监视器:在“CPU”选项卡的“关联句柄”子部分的“搜索句柄”字段中键入文件名


    我在表单上还有两个其他字段,您知道是否有办法只重置输入文件类型吗?我不需要重置表单,只需设置
    inputElement.value=“”
    就足够了。请注意,如果您销毁了表单,您仍然必须先重置表单,否则在刷新或关闭浏览器选项卡之前,锁不会被释放。IE11中的拖放文件如何?状态为“不会修复”@@