【发布时间】:2013-05-27 01:11:45
【问题描述】:
我有一个带有文件上传的表单,在一个列出上传文件的网格下方。我正在使用 ajaxForm (jquery.form.js) 来执行 ajax 文件上传。为了响应成功的文件上传,我希望从服务器返回一个安全代码(我在服务器上创建它),稍后在从 Grid 中的链接下载该文件时作为参数传递。
如果文件上传不成功(即文件无效或文件过大),我必须通知用户。我同样使用taconite plugin。成功上传将显示消息,然后调用函数在网格中设置安全代码。如果不成功向用户显示消息并调用函数以从网格中删除上传条目(因为它不成功)
我有类似的机制从网格中删除字段 - 发送删除帖子请求 ($.post(...)) 并从服务器返回 taconite 结果。这按预期工作得很好。但是 .ajaxForm(带文件上传)在 IE 中无法正常工作。
这是来自 ajaxForm 调用的 sn-p -
成功:函数(responseXML、statusText、xhr、frm){ ... }
使用 FF(Firefox) 我不必担心 - 铁燧石响应(来自 responseXML)被正确解析。 但在 IE 中 responseXML 是 xml 对象。某些版本的 IE 提供来自 xhr.responseXML.xml 或 xhr.responseXML.text 或 xhr.responseXML.documentElement.textContent 的 xml 文本 - 但它并不一致。无论如何要获取xml文本?
除此之外,即使我在临时 div 中手动设置 xml 内容,它仍然不会调用/执行 taconite 插件操作!
我知道这听起来很复杂,但我得到的唯一线索是 ajaxForm + taconite + 文件上传存在问题。如果它不是文件上传,那么 taconite 将按预期对 IE 和 FF 执行(如我的删除文件功能)。如果您有任何我可以调整和尝试的建议,请分享!
这是一个返回的铁燧石样本 -
<taconite>
<replaceContent select="#fileOprMsg">
<span id="oprResult">Operation was successful<span class="error"></span></span>
<script>$().ready(function () { showOprResult('#oprResult', 1); });</script></replaceContent>
<eval><![CDATA[ fileUploadResponse('dcrc%22uycok0lri%3d9%3a3g%3a6%3a%3b%2f7ehd%2f6chf%2f%3a6de%2fghgcg4c7dgh4%3dVtwg',true,-1); ]]> </eval>
</taconite>
【问题讨论】:
标签: internet-explorer file-upload ajaxform taconite