无法将文件分配给文件输入、Firefox 和 IE

2024-01-10

用户可以通过两种可能的方式启动文件传输:拖放到小部件,或使用多文件输入按钮。我喜欢如何使用多文件输入,它将用智能的“选择 8 个文件”或其他内容替换文件名字符串。

为此,必须填充输入。我不想从 drop 事件中实际创建 xhr2 对象,而是只想将其 fileList 传递到输入元素中,并通过输入的“change”事件触发 xhr2。

这是一些骨架代码(jQuery 用于事件绑定,但 addListener 应该工作相同):

domNode.defaultUI.on("drop", "#progOver", function(evt) {
  evt.preventDefault();
  evt.stopPropagation();
  function sendFiles() {
    var fileList = evt.originalEvent.dataTransfer.files;
    document.getElementById('files-upload').files = fileList;
  }
  if (someCondition) {
    sendFiles();
  }
});

domNode.defaultUI.on("change", '#files-upload', function(evt) {
  console.log(evt.target.files);  // fileList object in Chrome, empty (prototype) fileLIst in Firefox
});

我知道 fileList 对象本身是只读的,我怀疑 Chrome 的设计是说“是的,那个 fileList 没有被篡改,让我们允许它”,而 Firefox 的设计是说“哇哦,公共汽车。你是吗?”试图用某个对象更新我可爱的安全文件输入?我不知道那个臭东西来自哪里,拒绝!”

所以问题有两个:

  1. 我的上述假设正确吗?这就是为什么我无法使输入的“files”属性等于 fileList 的原因吗?

  2. 是否有其他方法(而不是仅仅尝试将值添加到属性)来更新输入的文件属性?能够并行更新多个文件输入节点真是太好了。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法将文件分配给文件输入、Firefox 和 IE 的相关文章

随机推荐

  • 将 JSON 字符串转换为 Lua 表?

    我需要将 Json 字符串转换为 Lua 中的表数据结构 我正在使用以下代码 local json require json local t name1 value1 name2 1 false true 23 54 a 021 strin
  • 防止传单 R-Map 缩小?

    我用传单 R 包制作了传单地图 This is what the result looks like 我对此非常满意 但是当我将其嵌入网站并用笔记本电脑向下滚动文章时 我经常会不小心缩小地图 然后看起来像这样 用户也必须放大才能看到地图上有
  • 覆盖 SharePoint 2010 中的 X-UA 兼容元

    我正在使用 SharePoint 2010 我想使用对于特定页面 母版页将其设置为 IE 8 这不允许我在 CSS 中使用 box shadow 例如 我无权访问母版页来更改它 我还读到 不建议更改母版页中的元 因为它可能会导致日历等其他内
  • 读取 NetworkStream 不会推进流

    我有一个客户端 服务器应用程序 其中服务器传输一个 4 字节整数 指定下一次传输的大小 当我在客户端读取 4 字节整数 指定 FILE SIZE 时 下次读取流时 我会读取 FILE SIZE 4 个字节 从此流读取时是否需要将偏移量指定为
  • python 和 numpy 中的随机数生成器是什么?

    import random import numpy random 算法是什么random and numpy random 通常Mersenne Twister是matlab的默认生成器 并且可以选择使用哪个生成器 python 呢 有随
  • 在 AS3 中创建自定义 Trace() 类

    我想到了扩展我的trace 消息 Why trace 遍布我的代码 我想通过一个简单的命令打开 关闭它们 并且可能向trace 添加某种优先级功能 即 myTrace TraceMsg loosehere debugme 0 myTrace
  • 为什么 Google App Engine 在登录期间附加到我的“继续”位置的路径?

    我正在使用 Greasemonkey 脚本中的一个非常简单的 GAE 实例 这在过去几个月工作得很好 但现在一条路径被附加到最终的 继续 位置 这破坏了我的登录过程 基本工作流程 假设用户已登录其 Google 帐户 但其 GAE 实例的令
  • Typescript Node.js 应用程序中的 guid/uuid

    我尝试做一个uuid v 3 0 1 包在 Node Typescript 应用程序中工作 但我不确定应该导入什么以及如何使用它 This is index d ts from types uuidv 2 0 29 declare name
  • SPOJ 370 - 一和零 (ONEZERO)

    我正在尝试解决SPOJ 问题 1 和 0 http www spoj com problems ONEZERO 某些正整数的十进制表示仅由 1 和 0 组成 并且至少有一位数字 1 例如101 如果一个正整数不具有这样的性质 可以尝试将它乘
  • 使工具栏按钮样式应用于工具栏中的用户控件

    如何强制 WPF 中 ToolBar 内的 UserControls 使用 ToolBar 的默认按钮样式 我有一个名为 ImageButton 的简单用户控件 它的 XAML 如下所示
  • 只允许某些网站访问 PHP API

    我目前面临着保护客户在其网站上使用的 API 安全的问题 然而 因为这个 API 是由 JavaScript 调用的 所以我发现很难找到一种方法来只允许这些访问 API URL 那么我该怎么办呢 我如何只允许访问这些链接 显然 链接可能会受
  • 如何为 Rails 设置远程 json API 以进行身份​​验证和会话

    我是 Rails 新手 对 Devise Gem 有相当基本的了解 除了 CRUD 和视图之外 我不清楚它提供了什么可以帮助我让 AngularJs 应用程序与 Rails Json Api 进行对话 目前我正在用手滚动东西 为了安全起见
  • 列表框插入颜色项目

    I use ListBox用于插入文本 例如You add Michael in your database You delete Michael listBox1 Items Insert 0 You add name in your d
  • appcelerator titan:创建一个新文件

    如何在 appcelerator titan 中创建新文件 var Settings Titanium Filesystem getFile Titanium Filesystem tempDirectory Settings Ti API
  • 如何通过HardHat获取底层合约地址的私钥?

    我有 HardHat 教程中的智能合约https hardhat org tutorial writing and compiling contracts html https hardhat org tutorial writing an
  • Google Deployment Manager Cloud Scheduler 类型

    我发现 GCP 没有提供时间表类型 我想知道创建模板 复合类型或类似模板以提供 Cloud Scheduler 类型的步骤 我知道 Google 已经提供了一个例子 https github com GoogleCloudPlatform
  • 无法使用运行 MAMP / PHP 5.6.1 / Mac OS X El Capitan 的 putenv() 修改 PATH

    配置 MAMP专业版 PHP 5 6 1 Mac OS X 埃尔卡皮坦 我需要添加 user local binphp可以访问的系统路径 我尝试过使用 putenv 但似乎我无法使用 putenv 更改 php 中环境变量 PATH 的值
  • 从代理返回异常

    我正在使用大量未记录的 Castle 动态代理系统 我已经设法让它完成我想要的几乎所有事情 除了一件事 如何使代理方法抛出异常而不是返回值 public sealed class MyInterceptor IInterceptor pub
  • JavaScript 中 array.length 可以小于 0 吗?

    由于人们经常使用 array length lt 1 检查数组是否为空而不是 array length 0 我想知道是否存在 array length 可能低于 0 的情况 No the length数组的 是一个非负整数 从the spe
  • 无法将文件分配给文件输入、Firefox 和 IE

    用户可以通过两种可能的方式启动文件传输 拖放到小部件 或使用多文件输入按钮 我喜欢如何使用多文件输入 它将用智能的 选择 8 个文件 或其他内容替换文件名字符串 为此 必须填充输入 我不想从 drop 事件中实际创建 xhr2 对象 而是只