【问题标题】:Safari ignores input type="file" on server postSafari 忽略服务器帖子上的输入类型 =“文件”
【发布时间】:2010-04-01 13:46:05
【问题描述】:

我对经典的 ASP 页面有一个真正的问题。 该页面允许用户上传文档并将其保存到数据库中。初始页面发布到另一个保存到数据库的 asp 页面。这适用于 IE 和 Firefox。但是在 Safari 上它失败了。 我已经调试了这个问题,归结为服务器页面可以访问的所有控件中,只有 1 个控件丢失。这恰好是这样的:

<input type="file" size="40" id="myfile" name="myfile" />

所以我想知道为什么 safari 会决定不让我访问这个控件(使用 asp 的 Request("") )以及为什么它在 FF 和 IE 中有效。我有一些调试代码会写出所有控件,但它没有看到这个控件。

附言我讨厌网络开发

【问题讨论】:

  • 嗯....当您使用 FF 或 IE 时,服务器上的 Request("myfile") 究竟会得到什么?!因为经典 ASP 中的文件上传非常重要,通常需要相当多的工作(可以完成)或插件(这使它更容易)。 (这是某种愚人节玩笑吗?)

标签: asp-classic safari


【解决方案1】:

您是否在表单中正确设置了 ENCTYPE 属性?如果您有文件上传,我认为它应该类似于

<form action="/my/form/processor.asp" enctype="multipart/form-data" method="post">

我认为默认的 enctype 是 application/x-www-form-urlencoded,这显然适用于大多数其他浏览器,但显然 Safari 实际上需要正确设置。

【讨论】:

    【解决方案2】:

    我在 Safari 4.0.5 上得到了同样的结果。我在coldfusion中开发,一个简单的表单发布到处理页面正在除Safari之外的所有主要浏览器上运行。我的处理页面失败,因为表单字段“文件”为空,因此服务器没有任何内容可以上传:O(

    【讨论】:

    • 这是一个很好的指标,表明您缺少如上所示的 enctype。
    【解决方案3】:

    我有一个类似的问题,回发在除 safari 之外的所有浏览器中都有效..

    我从“form”标签中删除了method="post",一切正常..

    【讨论】:

      猜你喜欢
      • 2017-11-30
      • 2011-05-14
      • 1970-01-01
      • 2012-04-20
      • 2013-01-13
      • 2017-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多