TeamWARE USPでは、添付ファイルのダウンロードを以下の2種類の方法で行うことができます。
シナリオで直接扱う場合
以下の例では、サービス名「TWUSP1」としています。
また、ダウンロードするファイルのURLは、「http://www.fujitsu.co.jp/$JBEAAAAAAAAACQAAYQAB6pzxHfxU.VBEAAAAAAAAADwAAZAAB6pzxHfxU.M/サンプル.jpg」とします。なお、例ではエラー処理は省略しています。
paramObjectのtargetURLに、ダウンロードするファイルのURLを指定します。受信結果の receiveResultオブジェクトの getParcelメソッドで、PWScenarioParcelとして取り出し、そこから、getBodyメソッドを呼び出すことにより、InputStreamを得ることができます。シナリオでは、このInputStreamも用いて処理を行うことができます。
<pwst:prologueScenario result=”ps” debugFile=”scenarioDebug.txt”/>
<%
Hashtable uspParam = new Hashtable();
uspParam.put("sponsorAction","request");
uspParam.put("httpMethod","GET");
uspParam.put("targetURL",
"http://www.fujitsu.co.jp/$JBEAAAAAAAAACQAAYQAB6pzxHfxU.VBEAAAAAAAAADwAAZAAB6pzxHfxU.M/サンプル.jpg");
%>
<!--リクエストの送信-->
<pwst:call service="TWUSP1" paramObject="<%= uspParam %>" result="callResult" />
<pwst:epilogueScenario/>
<!—リクエストの受信-->
<pwst:prologueDoc/>
<pwst:receive timeout="60" result="receiveResult"/>
<%
PWScenarioParcel parcel=receiveResult.getParcel();
Object obj = parcel.getBody();
if (obj instanceof InputStream) {
InputStream in = (InputStream)obj; // InputStreamとして取り出し、シナリオで利用
}
%>
<pwst:epilogueDoc/>ブラウザにリンクを表示したい場合
シナリオJSPで、リンクを張ります。
以下の例では、シナリオ名「twdownload」、サービス名「TWUSP1」としています。また、ダウンロードしたファイルのURLは、「http://www.fujitsu.co.jp/$JBEAAAAAAAAACQAAYQAB6pzxHfxU.VBEAAAAAAAAADwAAZAAB6pzxHfxU.M/サンプル.jpg」としています。
<%
Hashtable uspParam = new Hashtable();
uspParam.put("sponsorAction","request");
uspParam.put("httpMethod","GET");
%>
<a href="<%=scenarioContext.makeLink("twdownload/TWUSP1", uspParam,
"http://www.fujitsu.co.jp/$JBEAAAAAAAAACQAAYQAB6pzxHfxU.VBEAAAAAAAAADwAAZAAB6pzxHfxU.M/サンプル.jpg")%>">
サンプル.jspへのリンク</a>