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