アプリ版:「スタンプのみでお礼する」機能のリリースについて

とあるZipファイルのデータをashxに送信し、
ashxで受信したデータをファイルに出力する処理を実現したいのですが、
出力されたファイルを解凍しようとしても破損しており、解凍できませんでした。

原因を調べてみたところ、ajaxでashxに送信する時点では元のZipファイルと同じBinaryデータなのですが、ashxで受信したリクエストのボディ部が送信したデータと一致していませんでした。
(ashxで受信したTotalBytesの値が送信データよりも多くなってしまっていました。)

ajaxで送信する際の指定に問題があるのでしょうか?
原因分かる方おりましたら、ご教授ください。

-----------------以下データを送信するaspxファイルのJS-------------------------
var base64Str = document.getElementById("hData");  ←zipファイルのbinaryをbase64変換した値が格納されているhidden項目の値を取得しています。
var binaryStr = ConvertBase64.decode(base64Str); ←base64文字列を復号する処理です。この時点では元のZipファイルのBinaryデータと一致しています。
$.ajax({
type: "POST",
url: "test.ashx",
catche: false,
headers: {
"test": "aaaa"
},
data: binaryStr
})

A 回答 (1件)

> (ashxで受信したTotalBytesの値が送信データよりも多くなってしまっていました。

)

もう少し詳しく。
頭にゴミが付くとか。
サイズが1.33倍になるとか。

> var binaryStr = ConvertBase64.decode(base64Str);

base64文字列を送信してashx側でdecodeすればよいのでは?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!