zheng 发表于 2023-3-13 15:03:03

如何根据接口获取到文件流

我使用这个接口调取系统中的文件,但是获取到的data是乱码,请问如何接收这个文件呢?
var action = this.Actions.load("x_processplatform_assemble_surface");       action.AttachmentAction.downloadStream(//平台封装好的方法      id,//uri的参数      function( json ){ //服务调用成功的回调函数, json为服务传回的数据         data = json.data; //为变量data赋值      }.bind(this),   function( json ){ //服务调用失败的回调函数, json为服务传回的数据      data = json.data; //为变量data赋值   }.bind(this)    );




论坛管理员 发表于 2023-3-14 10:02:52

用window.open 打开对应的附件地址

zheng 发表于 2023-3-14 15:18:10

本帖最后由 zheng 于 2023-3-15 09:35 编辑

论坛管理员 发表于 2023-3-14 10:02
用window.open 打开对应的附件地址
我需要从其它的系统来访问oa中的文件,前提我已经拿到oa中的token了,所以就得用ajax发送请求访问文件,然后我从外部系统预览这个文件,发现这个resultJson中的responseText是一个blob类型的对象,我解析这个blob成pdf却是空白的。请问如何解决
$.ajax({      type : 'GET',      dataType : 'json',      url : 'http://:20020/x_processplatform_assemble_surface/jaxrs/attachment/download/替换参数0/stream?fileName=替换参数0',      headers : {'x-debugger' : true},      contentType : 'application/json',      xhrFields : {'withCredentials' : true},      crossDomain : true}).always(function(resultJson) {      alert(JSON.stringify(resultJson, null, 4))});

论坛管理员 发表于 2023-3-15 09:29:33

Blob是二进制流,不能用json的方式处理。用户要查看,直接用window.open。如果你有其他的预览软件,就要整个软件的api。

zheng 发表于 2023-3-15 09:36:22

论坛管理员 发表于 2023-3-15 09:29
Blob是二进制流,不能用json的方式处理。用户要查看,直接用window.open。如果你有其他的预览软件,就要整 ...

如果用window.open('http://:20020/x_processplatform_assemble_surface/jaxrs/attachment/download/替换参数0/stream?fileName=替换参数0'),返回结果是会话过期,因为我是从别的系统来访问o2oa中的文件的

论坛管理员 发表于 2023-3-15 15:57:25

您不是已经拿到token了吗,window.open时戴上token就可以了
页: [1]
查看完整版本: 如何根据接口获取到文件流