项目中使用activeX插件处理pdf,插件返回二进制数据传递给js变量,不知道怎么用js将二进制数据发送到服务器端保存。
我尝试的做法是var data = pdf.SaveAs("binary");//二进制
$.ajax({
type: "POST",
url: "business/business!save.action",
processData: false,
data: data
});
服务端:request.getInputStream()得到为空,但是在request.getReader()里面有字符数据;
BufferedReader reader = request.getReader();
StringBuffer sb = new StringBuffer();
String s = "";
while((s = reader.readLine())!= null){
sb.append(s);
}
s = sb.toString();
byte[] b = s.getBytes();
FileOutputStream fos = new FileOutputStream(new File("D:/a.pdf"));
fos.write(b);
fos.close();
这样只能保存成文本文件,无法用pdf打开;
请问有谁知道将接收的字符流转换成pdf的,请指点!谢谢
问题补充:后台接收的字符:
%PDF-1.3
1 0 obj <> >> endobj
2 0 obj <1Im00Im01Im11Im30Im11Im4
) >> endobj
3 0 obj <> endobj
4 0 obj <> endobj
5 0 obj <> /Ascent 859 /Descent -141 /CapHeight 1000 /StemV 166 /ItalicAngle 0 >> /CIDSystemInfo <> /DW 1000 /W [1 95 500 814 939 500 7712 [500 ] 7716 [500 ] ] >> endobj
6 0 obj <> endobj
7 0 obj <> /Ascent 859 /Descent -141 /CapHeight 1000 /StemV 88 /ItalicAngle 0 >> /CIDSystemInfo <> /DW 1000 /W [1 95 500 814 939 500 7712 [500 ] 7716 [500 ] ] >> endobj
8 0 obj <> /XObject <> /ProcSet [/PDF /Text /ImageC ] >> /Contents 9 0 R >> endobj
9 0 obj <> stream
x��[ێ$9}����Y��ỄV�%���