node.js - 如何将图像原始数据转换为图像
问题描述
我想显示由 nodejs 中的 spring boot api 返回的用户文档文件,但该文件未显示。
这是我的spring boot api代码
httpServletResponse.setHeader("Content-Disposition", "inline; filename=" + storeDocName + "");
httpServletResponse.setContentType(fileType);
httpServletResponse.setContentLengthLong(Files.readAllBytes(file.toPath()).length);
httpServletResponse.getOutputStream().write(Files.readAllBytes(file.toPath()));
这是我的节点 js 代码
requestMethodGetForImageData: function(url, form, header) {
return new Promise((resolve, reject) => {
//SET ALL THESE PARATMETER TO MAKE REQUEST
request.get({ url: url, qs: form, headers: header }, function(error, response, body) {
var result = {
body: response.body,
header: response.headers['content-type']
};
resolve(result);
}
});
});
},
我正在使用nodejs的request模块将请求发送到spring api,在这里的nodejs中,我正在调用这个请求函数
router.get("/loadStoreDocument", function(req, res) {
var url = httpProtocol + httpServer + servicePort + serviceUrl;
//SET HEADER
headers = {
'Authorization': "token"
};
//SET FORM DATA
form = {
account_id: "id",
token_type: "token_type",
document_child_id: "id"
};
requestHandling.requestMethodGetForImageData(url, form, headers)
.then((result) => {
res.header("content-type", result.header);
res.send(result.body);
}).catch((err) => {
console.log("ERROR IN GET STORE PROFILE");
console.log(err);
res.send(err);
});
});
但是当我调用这个 URL(loadStoreDocument) 时它会返回这样的 图像 在此处输入图像描述
spring api 的响应在这里(图像数据) 在此处输入图像描述
请帮助我,我到处搜索,但找不到任何解决方案。
解决方案
您需要encoding: null
在request.get()
选项中进行设置。
request.get({ url: url, qs: form, headers: header, encoding: null })
来自request
文档:
encoding - 用于响应数据的 setEncoding 的编码。如果为 null,则正文作为缓冲区返回。其他任何内容(包括 undefined 的默认值)都将作为编码参数传递给 toString() (这意味着默认情况下这实际上是 utf8)。(注意:如果您需要二进制数据,则应设置 encoding: null。)
推荐阅读
- flutter - 如何在 Flutter 中使用 ChangeNotifier 将变量数据放入类中?
- c# - Razor 表单仅提交一个输入字段
- java - java依赖注入模糊覆盖
- vue.js - 努克斯特。通过 this.$router.push 去搜索页面清除 URL 查询参数
- powerbi - MS Power BI 的 INDEX() 等效项
- javascript - Google Console Chrome jQuery 从 HTML 中提取名称和 URL
- flutter - 滚动时图表颤动工具提示突出显示超出范围
- sql - SQL如何包含在其他表中找不到的结果
- c# - 在 Android 平台上使用 ICredentials 的 Xamarin Signalr 中的 System.Net.Security.Native 异常
- vba - 如何在访问报告中生成列表?