如何根据接口获取到文件流
我使用这个接口调取系统中的文件,但是获取到的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) );
用window.open 打开对应的附件地址 本帖最后由 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))});
Blob是二进制流,不能用json的方式处理。用户要查看,直接用window.open。如果你有其他的预览软件,就要整个软件的api。 论坛管理员 发表于 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中的文件的 您不是已经拿到token了吗,window.open时戴上token就可以了
页:
[1]