如何从 javascript 中的 http 响应动态连接字节流块?
How to dynamically concat a block of byte stream from http response in javascript?
所以,
我想向浏览器发送字节流(例如 pdf),以便他可以将其显示给用户。
if (bytesToRead == -1) {
bytesToRead = (int)fullPathFile.length();}
byte[] buffer = new byte[bytesToRead];
int bytesRead = -1;
if((inputFileInputStream != null) && ((bytesRead = inputFileInputStream.read(buffer)) != -1)){
if (codec.equals("base64")) {
String streamLength = Base64.encodeBytes(buffer, 0, bytesToRead);
response.setContentLength(streamLength.length());
outputFileOutputStream.write(Base64.encodeBytes(buffer, 0, bytesToRead).getBytes());
} else {
outputFileOutputStream.write(buffer, 0, bytesToRead);
}
}
inputFileInputStream.close();
outputFileOutputStream.flush();
outputFileOutputStream.close();
目前它与选项 -1 一起使用以一次性获取字节流,但我想发送 2kb 让我们说。我知道为此我需要发送多个 2kb 的回复,并且我必须将它们连接到 javascript 代码中。但是,我该怎么做呢?
使用 concat() 遍历数组...
var allBytes = [];
for (byteArray in allByteArray){
allBytes = allBytes.concat(byteArray);
}
但是如果你想加入多个 PDF 页面,它不会工作...
我在增加偏移量的地方使用了 for()。
所以,
我想向浏览器发送字节流(例如 pdf),以便他可以将其显示给用户。
if (bytesToRead == -1) {
bytesToRead = (int)fullPathFile.length();}
byte[] buffer = new byte[bytesToRead];
int bytesRead = -1;
if((inputFileInputStream != null) && ((bytesRead = inputFileInputStream.read(buffer)) != -1)){
if (codec.equals("base64")) {
String streamLength = Base64.encodeBytes(buffer, 0, bytesToRead);
response.setContentLength(streamLength.length());
outputFileOutputStream.write(Base64.encodeBytes(buffer, 0, bytesToRead).getBytes());
} else {
outputFileOutputStream.write(buffer, 0, bytesToRead);
}
}
inputFileInputStream.close();
outputFileOutputStream.flush();
outputFileOutputStream.close();
目前它与选项 -1 一起使用以一次性获取字节流,但我想发送 2kb 让我们说。我知道为此我需要发送多个 2kb 的回复,并且我必须将它们连接到 javascript 代码中。但是,我该怎么做呢?
使用 concat() 遍历数组...
var allBytes = [];
for (byteArray in allByteArray){
allBytes = allBytes.concat(byteArray);
}
但是如果你想加入多个 PDF 页面,它不会工作...
我在增加偏移量的地方使用了 for()。