javascript - 是否可以使用 HTML 按钮上传文件以供 W3C 文件 API 使用?

标签 javascript html

我有一个缩略图界面模型,我想添加上传图片的功能。根据我的模型,界面如下所示:

Thumbnail interface

目的是用户单击“添加图标”按钮,然后会弹出一个文件对话框,就像单击文件输入时弹出的对话框一样。我想使用 W3C 的文件 API 来异步处理文件上传,并在上传完成后在按钮上方的灰色区域显示缩略图。

因此,我想在不使用文件输入 HTML 元素的情况下上传文件。我尝试使用隐藏的文件输入元素,并在单击“添加图标”按钮时使用 Javascript 调用其 click 事件处理程序,但调用没有执行任何操作。我认为安全性可能与此有关。

以前有没有人有幸使用 HTML button 上传文件?

最佳答案

我经常使用的技巧是将隐藏的 file input 包装到 label 标签中,然后将我自定义的 input 元素放入 >label 标签。通过 defenition 点击​​ label 标签内的任何内容应该触发 input 里面。根本不需要 JavaScript!

<label>
    <div>
        My custom file input
    </div>
<input type="file" id="file"/>
</label>

CSS: input{visibility:hidden;} 请注意,您不能使用 display:none,因为这样元素将不会呈现。您仍然可以使元素 width:0; height:0; 完全隐藏 input 元素。

Fiddle

使用 HTML 文件 API 有点不同。阅读this article在 Mozilla 开发者网络学习更多。

关于javascript - 是否可以使用 HTML 按钮上传文件以供 W3C 文件 API 使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7631394/

相关文章:

javascript - 服务器推送时如何将数据附加到客户端的 div

javascript - 更改后返回默认复选框

html - 使用 xpath 将解析后的 html 写入 R 中的文件

javascript - 倒计时计时器滞后

javascript - onClick 需要 2 次点击

html - 无法删除对象之间的间距

html - 清除任何 CSS 样式的 div 及其内容

javascript - 使用 CasperJs 加载页面本身的同时加载页面的 Javascript

javascript - 从内部 Node 发出 SIGINT 事件

javascript - 在 Cordova 应用程序中触摸时获取动态创建的 html 行的文本