按钮显示选择要上载的文件对话框

而不是使用input type="file" html标记,是否可以通过单击input type="button"choose a file to upload对话框? 然后,当从choose a file to upload对话框中choose a file to upload ,文件路径会插入到常规的html input type="text"标记中吗?

我似乎gmail做了类似的事情,但没有按钮和文本输入,他们只是有一个链接add file或类似的东西。 单击该链接后,将显示select file(s) to upload by mail.google.com对话框select file(s) to upload by mail.google.comselect file(s) to upload by mail.google.com 。 单击文件时,屏幕上会显示文件名。

他们是怎么做到的?

我认为大多数浏览器都出于安全考虑而将其锁定。 可以通过JavaScript操作按钮和文本框。 文件输入框不能,并且有充分的理由; 想象一下如果javascript可以打开一个对话框,设置系统上敏感文件的路径,然后模拟按钮点击下载文件!


顺便说一下,如果你想要设计风格,也许这样可行: http : //www.quirksmode.org/dom/inputfile.html

  try this 

试试这个。 我觉得它很有用.. 🙂

检查这个小提琴: http : //jsfiddle.net/A4BS7/1/

注意:

a)这可能不适用于不在文件输入上触发更改事件的旧浏览器(主要是IE)。

b)为了使上传按预期工作,您需要在表单中包含元素。 text元素可用于最佳显示所选文件。

无法根据需要更改input[type=file] ,它是纯粹的原生表单元素。

此外,出于安全原因,您将无法获取文件的路径。 旧的IE版本显示了路径,但不再是新版本的情况,你无论如何都无法对服务器端的路径做任何事情。

虽然有一些风格的方法:

  • 样式文件上载/选择输入控件
  • 样式输入类型=“文件”
  • 使用CSS和DOM设置文件输入样式

看看plupload ,我已经多次使用它来处理文件上传。