嗯,我有一些非常奇怪的麻烦,这就是发生的事情:
这是环境: 我有一个模态面板,必须能够保存几个“步骤”,首先你必须上传一个文件,然后处理文件,从这个处理结果,我必须生成一些HTML来填补下一步。
这就是我的意思: 我使用jquery的$ .ajaxForm将它提交到php文件,以两种方式(从某个url,或使用文件类型输入和$ _FILES从本地硬盘驱动器)中的任意一种方式在模式面板的表单中上传文件处理它。处理完毕后,我需要填充信息的所有对象,在我包含的某个模板中使用,然后将其内容填入文本变量I json_encode中,以便附加到我的模态面板的第二个表单中。 / p>
到目前为止......太好了......直到我发现当我选择“来自url”并禁用文件输入时,一切正常,但是当我启用文件输入上传时,我得到的结果是html从模板的包含被打破(是的...你必须说WTF?,但是是真的0_0我尝试了一切,直到我隔离了错误隐藏的地方......)。 它在html结果的开始处添加了一些“PRE”html标记,并且每个标记都转换为大写,所有结束标记都有“<”和“>”取而代之的是它的实体对应物(如& lt;等等)。 我通过“警告”表单的回调中的原始HTML结果(显然是由结果表单造成的损坏)看到了这一点。 关于可能发生什么的任何想法??
提前致谢!!!
PS:我得到了详细...:P答案 0 :(得分:1)
你应该提供一些关于你正在使用的框架/模板引擎的细节,因为它听起来像是问题所在。看起来像是关于表单的文件输入版本正在推动它疯狂 - 可能是您必须用于文件上传的enctype="multipart/form-data"
。您可以通过将enctype
属性添加到非文件对话框中来测试该部分,然后查看它是否也会变得疯狂。
如果您的模板引擎有责任,修复问题可能涉及升级或调试其内容。
答案 1 :(得分:1)
据我所知,你无法提交像这样的ajax上传。您可以通过在<iframe>
中创建表单然后提交它来伪造它,但我认为您不能使用纯粹的ajax来执行此操作。我是原型用户,但我认为对于jquery或任何其他库也是如此。