代码之家  ›  专栏  ›  技术社区  ›  Russell

HTML文件上载表单

  •  2
  • Russell  · 技术社区  · 15 年前

    我有一个具有简单文件上传要求的Web应用程序(最大1 MB)。 Web应用程序是一个外部公开的网站,必须(尽可能)与所有浏览器和版本兼容。

    我们正在使用C.NET 3.5 ASP.NET(IIS 7)技术。

    我们无法实现文件上载控制:

    <input type="file" ... />
    

    按钮点击不正确,不同的输入方法(例如在某些浏览器中点击文本框将打开输入字段)。

    我们需要避免第三方文件上传工具。

    使其与所有浏览器兼容的最佳方法是什么? 我们可以使用框架(例如,我们可以使用jquery)来实现这一点吗?

    任何帮助都非常感谢。

    编辑:

    以下是一些更具体的行为细节:

    预期/预期:

    一致使用文本框字段(用于文件名):

    • 显示所选文件的文件名
    • 没有事件触发浏览对话框的启动

    一致使用浏览按钮:

    • 与标准HTML按钮相同的CSS标准,用于外观和感觉
    • 打开浏览对话框
    • 对话框取消-清除文本框字段
    • 对话框确定-(重新填充文本框字段)

    我们希望有文本框和按钮的外观和感觉,以使用与我们网站其他部分相同的CSS。

    电流:

    • 文本框单击事件打开对话框
    • 文本框和按钮字段的常规显示
    • 浏览按钮不适用于某些浏览器(不触发浏览对话框事件,但正在显示)

    所有浏览器类型之间的行为(如上所述的事件/操作)应尽可能一致。

    3 回复  |  直到 15 年前
        1
  •  7
  •   bobince    15 年前

    使其与所有浏览器兼容的最佳方法是什么?

    它已经 兼容的 所有浏览器。不要太费劲地编写脚本或修改样式。文件上载字段的自定义可能性最小,部分是出于明显的安全原因,部分是因为在许多浏览器中,文本+按钮排列的多部分呈现不适合于对单个框进行操作的基本样式。

    (例如,在某些浏览器中单击文本框将打开输入字段)。

    幸运的是,浏览器做到这一点的人已经被用来上传文件;事实上,他们会期望浏览器做到这一点,如果你设法阻止它,他们会感到困惑。

    (这是一个明智的措施:允许在文件名字段中键入很少有用,但在过去它已经造成了安全漏洞。)

    一致使用浏览按钮:

    关于文件上传字段,甚至都没有要求使用浏览按钮或文件查找器对话框。你可以改为喝得烂醉。浏览器决定了这一点;作为网站作者,你无法登录。

    我们希望有文本框和按钮的外观和感觉,以使用与我们网站其他部分相同的CSS。

    这在HTML领域是不可能的。因此,第三方上载程序,通常使用HTML回退闪存。

    one approach 你可以用它让文件上传看起来像你想要的,但不是很好。您可以随意设置文本字段和按钮的样式,监听对文件上载字段的更改,并将值复制到要显示的文本字段。文本字段必须是只读的,因为不可能允许用户从中选择文件。

    然后将真正的文件上传控件放在带有CSS定位的假控件之上,并赋予它CSS不透明度(IE中的alpha过滤器),使其非常模糊,以至于看不到它。然后,您必须希望浏览器决定将文件上载字段的可单击部分放在呈现按钮的顶部。虽然您可以在许多流行的浏览器中进行修改和检查,但它确实非常脆弱,几乎可以肯定是完全浪费时间。

        2
  •  1
  •   jqa    15 年前

    您将无法获得一致的用户界面。每个浏览器都有自己的实现。Safari用户希望使用Safari方法,IE等也一样。

    您可能在CSS控制框方面取得了一些成功,但请注意,现代浏览器在这个领域有很多安全性。与字段相比,您对此字段的控制有限

        3
  •  -1
  •   DmitryK    15 年前

    如果您遵循以下说明: http://www.15seconds.com/issue/010504.htm 你应该有始终如一的行为。刚刚

    至于造型,这是你的任务。确保您的HTML和CSS在您支持的所有浏览器中都兼容(按预期工作)。