Umbraco 4.11.3:客户端表单上传(多部分/表单数据)给出 404

Posted

技术标签:

【中文标题】Umbraco 4.11.3:客户端表单上传(多部分/表单数据)给出 404【英文标题】:Umbraco 4.11.3 : Client side form upload (multipart/form-data) gives 404 【发布时间】:2013-02-14 16:47:21 【问题描述】:

我正在使用带有无扩展网址的 umbraco。 我在我的一个母版页(en/test)中插入了一段简单的 html

<form method="post" enctype="multipart/form-data">
  <input type="submit" />
</form>

当我按下提交按钮时,我得到一个 404。路径完全相同,应该存在。 当我删除 enctype 部分时,提交正常。

我不知道如何解决这个问题,但我敢打赌这与重写有关。

我也尝试了以下方法但没有成功:

<form method="post" enctype="multipart/form-data" action="/en/test">
  <input type="submit" />
</form>

<form method="post" enctype="multipart/form-data" action="/en/test.aspx">
  <input type="submit" />
</form>

我可以使用 enctype 属性的唯一页面是在实际主页上。我想这与 physic default.aspx 存在这一事实有关。

===============更新=================

页面中只有一个表单元素,即我插入的那个。所以一个“整页”的表单元素肯定不是这样的。其次,是的,该表格理论上是回发给自己的。我还尝试了一个空的操作标签,加上一个带有建议的完整 URL 的操作标签,结果相同。

当我使用以下场景时:

无动作属性 action="" action="相对路径" action="绝对路径"

我最终访问的 URL 与我触发提交的 URL 完全相同。但它是 404。当我在地址栏中按回车键时,不是 404,我回到原来的页面,网址相同。

【问题讨论】:

【参考方案1】:

我要问的第一个问题是,当您浏览到“/en/test”或“/en/test.aspx”时,您会收到 404。要使表单回发给自己,请尝试空操作,例如action="" 或将当前 url 写入 action 属性。还有一个问题,你的页面周围是否有另一种带有 runat="server" 属性的表单,因为如果有的话,你最终会得到嵌套的表单,这也会给你带来问题。

由于 4.10 中引入的错误,我强烈建议您将安装升级到至少 v4.11.4。详情请看下文...

在取消发布子节点后尝试发布根节点(父节点)会导致 YSOD: http://issues.umbraco.org/issue/U4-1491

路径修复 http://our.umbraco.org/projects/developer-tools/path-fixup

【讨论】:

感谢您的回复。页面中只有一个表单元素,即我插入的那个。所以一个“整页”的表单元素肯定不是这样的。其次,是的,表格理论上是回发给自己的。我还尝试了一个空的动作标签,加上你建议的带有完整 url 的动作标签,结果相同。当我使用以下场景时:无操作属性,action="",action="relative path",action="absolute path":我最终得到与我触发提交的 URL 完全相同的 URL。但它是 404。当我在地址栏中按 enter 键时,没有 404。 我还用您的回复更新了我的主要问题,以进一步澄清。感谢您提及 umbraco 更新,但是这应该与我的上传问题无关。

以上是关于Umbraco 4.11.3:客户端表单上传(多部分/表单数据)给出 404的主要内容,如果未能解决你的问题,请参考以下文章

隐藏字段“ufprt”被添加到 Razor Umbraco 表单 - 为啥?

ASP.NET Web API,从 Flex FileReference 上传时 MIME 多部分流意外结束

.NET Web API Blueimp 多文件上传错误“MIME 多部分流意外结束。MIME 多部分消息不完整。”

Umbraco 上传文件到另一个文件夹,而不是media files

WebAPI 文件上传 - 无需将文件写入磁盘

Umbraco Contour 多步表格 - 根据用户输入决定下一步