私は、他のものの中でファイルをアップロードできるようにする必要があるWCF Webサービスを開発しています。WCF RESTファイルアップロード
現在「フロアプラン」アイテムを追加するための私の方法は次のようになります。私は画像のような方法で使用することができ、この呼び出しの一部としてアップロードされるように、それを変更する必要が
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "Floorplan?token={token}&floorplan={floorplan}")]
string XmlInputFloorplan(string token, string floorplan);
この場合にはbyte[]
public static Guid AddFile(byte[] stream, string type);
は、画像の内容です。結果として得られるGUIDはデータレイヤーに渡され、フロアプランの追加が確定されます。
だから私は二つのことを把握する必要があります。
1)それはまた、パラメータとしてイメージすることができますように、私はXmlInputFloorplan
インターフェイスメソッドを変更する必要がありますどのように?
2)変更後にサービスを利用するにはどうすればよいですか?
ありがとうございます!
<?xml version="1.0" encoding="us-ascii" ?>
<CreateFloorplanRequest>
<Token></Token>
<Floorplan></Floorplan>
<Image></Image>
</CreateFloorplanRequest>
と画像私はバイトに変換した画像ファイルを表しベース64エンコードされた文字列が含まれています
[OperationContract]
[WebInvoke(Method = "POST",
ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "Floorplan")]
XmlDocument XmlInputFloorplan(Stream content);
は、入力XMLなどを想定しています。ここ
は、私はそれを解決する方法であります[]経由で:
これを可能にするために、私はWeb.configを以下のように設定しなければなりませんでした:
<service behaviorConfiguration="someBehavior" name="blah.blahblah">
<endpoint
address="DataEntry"
behaviorConfiguration="web"
binding="webHttpBinding"
bindingConfiguration="basicBinding"
contract="blah.IDataEntry" />
</service>
<bindings>
<webHttpBinding>
<binding name="basicBinding" maxReceivedMessageSize ="50000000"
maxBufferPoolSize="50000000" >
<readerQuotas maxDepth="500000000"
maxArrayLength="500000000" maxBytesPerRead="500000000"
maxNameTableCharCount="500000000" maxStringContentLength="500000000"/>
<security mode="None"/>
</binding>
</webHttpBinding>
</bindings>
これは動作しません。私には、 'Stream'パラメータで何をすべきかわからないという叫び声がありました。 – FlyingStreudel
どこに叫んでいますか? –
それは、ポストのために、ちょうど1つのパラメータ呼び出しストリームが必要であると言っていました。私はすべての引数を取り除き、xmlファイルをストリームに送信するだけでした。それは正しい道に私を置いて以来、病気はまだ答えを受け入れる。 – FlyingStreudel