0

在我的应用程序中,如果用户单击按钮截取屏幕截图,activeX则会调用控件中的一个方法,该方法截取屏幕截图,将其转换为字节(64 位编码字符串),并且我能够访问该 64 位javascript中编码的字符串,我用它来向用户展示图像的预览(标签的src属性是用字符串设置的)。img

现在,当用户单击预览的“保存”按钮时,我希望使用ajax. 现在,问题是我只有文件的二进制字符串,但我想将图像作为multipart请求发送(就好像它是使用上传的一样<input type="file"/>。任何可能的方法?唯一的条件是图像应该作为multipart请求发送,以便我可以使用在服务器上处理分段上传的标准技术接收它。

我也可以使用特定于 IE 的解决方案:)

4

1 回答 1

0

您不能通过 AJAX 发送多部分信息,但您可以解决这个问题。您在页面上制作表格:

<form name="img_form" target="img_iframe" action="..." method="..." enctype="multipart/form">
</form>

<iframe name="img_iframe" id="img_iframe"></iframe>

在将加载到 img_iframe 中的返回数据中,您可以使用隐藏字段或指向新文件的链接设置各种返回值。

您可以像这样设置 onLoad 事件:

$('iframe#img_iframe').on('load', function(event) {
    var iframe_content = ($.browser.msie ? $(event.target.contentWindow.document) : $(event.target.contentDocument));

    /* Do Stuff */
});

这是假设您知道如何设置要在表单中提交的正确数据。

于 2012-10-10T13:56:33.970 回答