1

ASPネットアプリにボタンがあり、押すとバイト配列を返すレストサービスを呼び出しています。

この bytearray は、実際には、ボタンが押されたときにブラウザーでダウンロードを開始する必要があるファイルです。どうすればこれを達成できますか?

bytearray を応答に書き込み、ヘッダーを設定する方法を考えています。

この考え方は正しいですか?コードサンプルはありますか?

---------3/25更新---------------- ジャスティンに感謝しますが、まだ私が必要としているものではありません. このリンクを見てください。ダウンロード用のファイルが返されます。私がする必要があるのは、このページにリダイレクトせずにダウンロード用にこのファイルを取得するイベント クライアント側を用意することです。このリンクではなく、マイページからダウンロードする必要があります。

http://ops.epo.org/3.0/rest-services/published-data/images/US/5000001/PA/firstpage.pdf?Range=1

Fiddler でチェックアウトすると、pdf がバイナリとしてどのように受信されるかがわかります。

4

2 に答える 2

1

responseTypeas arraybufferを設定して、その方法でアクセスできます。onprogress イベントを使用してデータをストリーミングする方法もあります。JavaScript は長い道のりを歩んできました。

var oReq = new XMLHttpRequest();
oReq.open("GET", "/myfile.png", true);
oReq.responseType = "arraybuffer";

oReq.onload = function (oEvent) {
  var arrayBuffer = oReq.response; // Note: not oReq.responseText
  if (arrayBuffer) {
    var byteArray = new Uint8Array(arrayBuffer);
    for (var i = 0; i < byteArray.byteLength; i++) {
      // do something with each byte in the array
    }
  }
};

oReq.send(null);

https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Sending_and_Recoming_Binary_Data

Web サービスがバイナリ データを返さず、代わりに次のような JSON データを返す場合、[0,1,3,4]それは別の問題です。

于 2013-03-22T23:07:37.587 に答える
0

私の知る限り、javascriptでできる最も近いことは、サーバーにデータをテキストとして解析させるajaxリクエストです。

于 2013-03-22T22:28:23.567 に答える