【问题标题】:How to upload an image from mobile web app (PhoneGap & JavaScript) to a SOAP web service如何将图像从移动 Web 应用程序(PhoneGap 和 JavaScript)上传到 SOAP Web 服务
【发布时间】:2012-03-07 10:50:34
【问题描述】:

如何将图像从移动网络应用程序发送到现有网络服务。我考虑使用PhoneGap FileTransfer 对象,但我不知道如何将调用包装在 SOAP 数据包中。

我需要上传图像的服务器希望图像被包装在一个 SOAP 数据包中。从下面的服务描述中,可以看出服务器需要 base64Binary 格式的文件。以前有没有人做过这样的事情,或者我是第一个(或最后一个)过河的水牛(被鳄鱼吃掉):

POST /Service.asmx HTTP/1.1
Host: 127.0.0.1
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Header>
    <AuthHeader xmlns="http://localhost/">
      <LogonID>string</LogonID>
      <Password>string</Password>
    </AuthHeader>
  </soap12:Header>
  <soap12:Body>
    <uploadFile xmlns="http://localhost/">
      <FileDetails>
        <ReferenceNumber>string</ReferenceNumber>
        <FileName>string</FileName>
        <FileType>int</FileType>
        <FileContents>base64Binary</FileContents>
      </FileDetails>
    </uploadFile>
  </soap12:Body>
</soap12:Envelope>

【问题讨论】:

    标签: javascript jquery soap jquery-mobile cordova


    【解决方案1】:

    您可以查看here,了解如何从 javascript 调用 SOAP Web 服务。 和 here 用于 base64 编码文件

    【讨论】:

    • 这真是一个很好的答案,你有没有尝试过使用 javascript 发送带有 mtom 附件的 SOAP 请求?
    【解决方案2】:

    可能不是您正在寻找的直接解决方案,但以下示例可能对您有用。

    http://www.javascriptbank.com/javascript/article/ajax/simple-ajax-file-uploader/preview/en/

    此外,此 SOW 线程还列出了从 javascript 调用 webservice 的替代方案。

    Simplest SOAP example

    【讨论】:

      【解决方案3】:

      我放弃了尝试将图像直接从 JavaScript 上传到 SOAP Web 服务的尝试——它变得太过分了。

      我通过开发网关来充当移动应用程序和 Web 服务之间的过滤器解决了这个问题。网关过滤图片上传请求,提取PhoneGap FileTransfer对象发送的base64编码图片。然后它按照 Web 服务的预期将其转换为 base64binary 数组。

      这种方式比尝试用 JavaScript 做所有事情要灵活得多。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-26
        • 2011-12-31
        • 2012-09-17
        相关资源
        最近更新 更多