我可以生成自定义<input type =“file”/>

时间:2010-12-11 22:45:17

标签: php javascript

有没有办法构建另一个可以将文件发布到服务器的元素?
不使用标签

<input type='file'>

2 个答案:

答案 0 :(得分:2)

如果您想进行拖放操作,可以使用HTML5中的新drag and drop stuff(在撰写本文时,Firefox和Chrome支持)。这不需要input type='file'

否则,如果没有input type='file'元素,则无法在纯HTML + JavaScript中执行此操作。作为thejh points out(在现已删除的答案中),您可以在不使用File API实际提交表单的情况下执行此操作,但仍需要使用input type='file'(尽管它不是需要提交表格并刷新页面)。使用JavaScript和File API读取文件的Here's an example(此处为SO);从那里,通过ajax发送它是一个微不足道的步骤。这对于在支持File API的浏览器上提供增强的用户体验非常有用(进度条,早期检测和报告不受支持的文件类型,早期检测和报告太大的文件等)。

当然,您可以使用非HTML / JavaScript技术(如Flash和(已签名)Java小程序)执行此操作,但如果您正在寻找一种“纯粹的”无插件机制,那么旧的{{{ 1}}仍然是你唯一的赌注。您可以在支持它的浏览器上通过File API逐步增强它,这很有用。

答案 1 :(得分:1)

你可以通过FLASH来实现,但我认为html中还没有其他方法。

为什么你不想使用输入?

无论如何,查看uploadify(漂亮的jQuery插件),可能会有所帮助:http://www.uploadify.com/