Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.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_Jquery_Reactjs - Fatal编程技术网

Javascript 如果在文件上传弹出窗口出现时单击“取消”,则输入类型文件将被删除

Javascript 如果在文件上传弹出窗口出现时单击“取消”,则输入类型文件将被删除,javascript,jquery,reactjs,Javascript,Jquery,Reactjs,为了复制这个问题, 步骤1:选择输入类型文件。 步骤2:当弹出窗口出现时,选择任何文件。 步骤3:再次单击输入类型文件。 步骤4:取消选择文件的弹出窗口。 在Google Chrome中,我们之前添加的文件会被删除。 但在Firefox中,文件将保留 HTML: 我的项目正在进行中。 请给我一个解决方案,或者如果我做错了什么,请告诉我。这是通过浏览器的设计实现的。你对此无能为力。你期望的是什么行为?即使单击“取消”按钮,我也需要这些文件。它在firefox中的工作原理@幸运的是,Chrome不是

为了复制这个问题, 步骤1:选择输入类型文件。 步骤2:当弹出窗口出现时,选择任何文件。 步骤3:再次单击输入类型文件。 步骤4:取消选择文件的弹出窗口。 在Google Chrome中,我们之前添加的文件会被删除。 但在Firefox中,文件将保留

HTML:

我的项目正在进行中。
请给我一个解决方案,或者如果我做错了什么,请告诉我。

这是通过浏览器的设计实现的。你对此无能为力。你期望的是什么行为?即使单击“取消”按钮,我也需要这些文件。它在firefox中的工作原理@幸运的是,Chrome不是这样工作的。要重新创建Firefox行为,您需要创建自己的控件,该控件从输入中获取选定的
文件
对象,并将其存储在控件之外。然后,您可以在UI中手动列出所选文件,并允许用户删除它们。您还需要更改表单提交数据的方式,以便将此二进制文件编码到请求中。这不是一个微不足道的变化。
<input type="file" multiple="" autocomplete="off" className="inp-file" onChange={uploadFile} multiple />
const uploadFile = async (e) => {
    sidefile = e.target.files
    const count = sidefile.length
    setFileCountState(count)
    if (count === 1) {
      setUploadStatus(`${count} File Uploaded`)
    } else {
      setUploadStatus(`${count} Files Uploaded`)
    }
    setRunButtonStatus(false)
  }