0

好吧,我遇到了一些非常奇怪的麻烦,这就是发生的事情:

这是环境:我有一个模态面板,它必须能够容纳几个“步骤”,首先你必须上传一个文件,然后处理文件,从这个处理结果中,我必须生成一些 html 来填充下一步。

这就是我所做的:我使用 jquery 的 $.ajaxForm 以两种方式之一(从某个 url,或从本地硬盘驱动器使用文件类型输入和 $_FILES)中的一种上传模式面板表单中的文件将其提交给处理它的 php 文件。处理后,我将所有需要的对象都填充了信息,这些对象在我包含的某些模板中使用,然后将其内容填充到文本变量中,我对它们进行 json_encode 以便附加到我的模态面板的第二种形式中。

到目前为止......很好......直到我发现当我选择“来自 url”并禁用文件输入时,一切正常,但是当我启用文件输入上传时,我从包含中获得的结果 html从模板被破坏(是的......你一定是在说WTF?,但这是真的0_0我尝试了一切,直到我隔离了错误隐藏的地方......)。它在 html 结果的开头添加了一些“PRE” html 标签,并且每个标签都转换为大写,所有结束标签都将其“<”和“>”替换为它的实体对应物(如 < 等等) . 我看到通过在表单的回调中“警告”原始 HTML 结果(显然是对结果表单造成的损害)。关于会发生什么的任何想法?

提前致谢!!!

PS:我很冗长...:P

4

2 回答 2

1

您可能应该提供有关您正在使用的框架/模板引擎的一些详细信息,因为听起来这就是问题所在。似乎有关表单的文件输入版本的某些内容正在使其发疯-可能是enctype="multipart/form-data"您必须用于文件上传。您可以通过将enctype属性添加到非文件对话框并查看它是否也变得疯狂来测试该部分。

如果您的模板引擎负责,那么解决问题可能涉及升级它或调试它的胆量。

于 2009-07-22T02:16:50.490 回答
1

据我所知,您不能像这样使用 ajax 提交上传。您可以通过在 an 中创建一个表单<iframe>然后提交来伪造它,但我认为您不能使用纯 ajax 来做到这一点。我是原型用户,但我认为jquery 或任何其他库也是如此。

于 2009-07-22T02:21:29.297 回答