代码之家  ›  专栏  ›  技术社区  ›  bugfixr

PHP使用需要xs:base64Binary的Web服务

  •  0
  • bugfixr  · 技术社区  · 16 年前

    我有一个Web服务,它需要一个类型为“xs:base64Binary”的参数——这是一个存储在数据库中的文件。

    // Get the posted file
    $file = file_get_contents($_FILES['Filedata']['tmp_name']);
    
    // Add the file, encoding it as a base64
    $parameters = array("fileBytes" => base64_encode($file));
    
    // Call the webservice
    $response = $client->attachFile($parameters); 
    

    结果是出现一个错误,说“请求不正确”。如果该文件是文本文件,并且我没有对其进行base64_编码,那么它可以正常工作。发布二进制文件(如图像)时会出现问题。

    有人知道这里的诀窍吗?

    编辑1

    还有一个问题是,如果我对文本文件进行编码,它似乎可以工作,但当然它是经过编码的,一旦下载并再次查看,它就会变成垃圾文件(即,文本是经过编码的,服务器似乎不会对其进行反编码)。

    2 回复  |  直到 16 年前
        1
  •  0
  •   Pekka    16 年前

    据我所知,, base64_encode() 我应该做这项工作。 您是否100%确定$file包含某些内容?你倒垃圾了吗?

        2
  •  0
  •   bugfixr    16 年前

    好的,看来没有必要使用base64_编码。文件内容已将其转换为所需格式。

    此外,问题是因为maxArrayLength的服务器端配置设置太低。

    推荐文章