我在将byte数组(使用Office.js从Microsoft Office的任务窗格中获取)保存到Word文档文件(在服务器端)时遇到了一些麻烦。 这就是我在做什么:

我正在使用此库获取Word文档的内容

JavaScript的

$('#push').click(function () {

$.when(OffQuery.getContent({ sliceSize: 1000000 }, function (j, data, result, file, opt) {

// ...nothing interesting here

})).then(function (finalByteArray, file, opt) {

// (1) this line is changed...see the answer

var fileContent = Base64.encode(finalByteArray); //encode the byte array into base64 string.

$.ajax({

url: '/webcontext/api/v1/documents',

// (2) missing setting (see the answer)

data: fileContent,

type: 'POST'

}).then(function () {

// updateStatus('Done sending contents into server...');

});

}).progress(function(j, chunkOfData, result, file, opt){

// ...nothing interesting here

});

然后在Spring控制器中,我这样做:

Java /春季

@RequestMapping(method = RequestMethod.POST) // As OOXML

public void create(@RequestBody String fileContent, HttpServletRequest request) throws Exception { // TODO

LOGGER.debug("{} {}", request.getMethod(), request.getRequestURI());

//LOGGER.debug("fileContent: {}", fileContent);

try {

val base64 = Base64.decodeBase64(fileContent); // From Apache Commons Codecs

FileUtils.writeByteArrayToFile(new File("assets/tests/output/some_file.docx"), base64);

} catch (IOException e) {

LOGGER.error("Crash! Something went wrong here while trying to save that...this is why: ", e);

}

}

...但是文件已按原样保存; 基本上是将byte数组作为文本文档保存到文件中。

我想念什么吗? 你有什么线索吗? 曾经使用过Office.js,任务窗格和类似工具的人吗?

提前致谢...

更新1

原来, finalByteArray已转换为Base64字符串( fileContent ),但是当我尝试在Java中执行反向操作不起作用时...如果有人以前这样做过,请告诉我。 我努力了:

...在Java方面(将Base64 String解码为byte数组):

js从服务器获取word文档,javascript - 使用Office.js API将Word文档(.docx)保存到后端服务器 - 堆栈内存溢出...相关推荐

  1. jQuery中ajax的触发时机,javascript - 如何在启动Ajax查询的jQuery中触发方法change() - 堆栈内存溢出...

    我有一个带有部门清单的选择项目html. 当我选择一个(方法"更改")时,它将在jquery中启动ajax请求,该请求将显示在另一个select输入中,即从数据库中获取的城市列表. ...

  2. python获取列表长度方法_python - 在Pandas df列中获取有关列表长度(平均长度,最大长度等)的统计信息的大多数pandas-onic方法 - 堆栈内存溢出...

    我想获取有关pandas df列中列表长度的统计信息,例如平均长度,最低,最高,标准差等. 例: import pandas as pd dfp = pd.DataFrame( {'trial_num ...

  3. android 获取是否连接wifi热点,android - 如何知道您是否已连接到Wifi热点/ Wifi / Wifi Direct - 堆栈内存溢出...

    这是一个代码快照,希望它对您有用! public static int getNetworkType(Context context) { ConnectivityManager connectivi ...

  4. android webview打印,javascript - 如何在Android Webview中使网站上的打印按钮工作? - 堆栈内存溢出...

    我的网站上有一个模式按钮,在该按钮上附加了一个处理程序函数以打印模式. 该处理程序具有处理"仅打印模式"的代码,并最终运行window.print(). 该按钮的功能类似于浏览器中 ...

  5. ios 从服务器获取文件,ios - 如何将远程文件(从远程SMB服务器获取)提供给某些请求 - 堆栈内存溢出...

    当某些请求命中服务器(在移动应用程序上运行的服务器)时,我正在尝试将视频文件作为响应提供. 该视频文件可以存储在本地,也可以是外部存储的. 我开始尝试提供位于SMB服务器上的文件,所以我尝试使用此代码 ...

  6. mysql econnreset_javascript - 节点Js mysql(和mysql2)ECONNRESET - 堆栈内存溢出

    我目前正在尝试使用带有mysql或mysql2 NPM依赖项的Node.Js连接到Internet上的MySQL服务器,以使用查询和其他相关内容. 代码很简单... //i import my dep ...

  7. ajax获取nodejs的值,jquery - NodeJS如何获取服务器中的数据,通过POST从jquery ajax调用发送 - 堆栈内存溢出...

    我的客户正在进行ajax调用 {{ function callNode(){ console.log("I am called"); var data = {"email ...

  8. vue.js与ajax删除,javascript - VueJs和VueResource,从Ajax请求中删除标头字段 - 堆栈内存溢出...

    当实例化Vuejs (2.2.6)和Vue-resource (1.2.1)时 ,我使用以下代码设置标头授权,通过这种方式,我可以将所有请求授权给我的API: Vue.http.headers.com ...

  9. js post中服务器500错误信息,node.js - Node Express Post 500(内部服务器错误)jquery-3.4.1.min.js - 堆栈内存溢出...

    我一直在研究 node js/express js 应用程序有一段时间了. 我有从 jquery $ajax 调用中获取和发布的工作. 出于某种原因,我有一个帖子"loginUser&quo ...

最新文章

  1. “人工智能”浪潮退去,“AI四小龙”怎么了?
  2. Visual Studio2017 安装教程(走过的坑绝不再走)
  3. python自带的集成开发环境是什么-常用的几款Python集成开发环境或者编辑器详解...
  4. ASP常用进制转化类(2,8,10,16,32,64)
  5. 文件上传案例优化(文件命名循环接收多线程提高效率)
  6. 数据科学 IPython 笔记本 9.9 花式索引
  7. clickhouse 部署+介绍
  8. ie浏览器点击打印没反应_ie浏览器无响应怎么回事?ie浏览器点击没有反应解决方法分享...
  9. matlab 积分后带int,matlab int 积分
  10. adb通过局域网连接手机
  11. Python简单示例-词频统计(分词)
  12. clc和clear命令的使用
  13. 年轻人看不起牙,但年轻人能靠这门生意赚钱吗?
  14. Linux常用命令——jwhois命令
  15. iOS版本最新分布概况
  16. 【狂神说Java】Docker最新超详细版教程通俗易懂 - 学习笔记
  17. NeurIPS 2022 | 北大阿里提出BEVFusion:激光雷达-相机融合新框架
  18. Html中圆圈怎么画,css怎么画圆?
  19. logstash收集日志写入redis
  20. Visual C++运行库命令行安装禁止安装完重启(以及帮助查看方式)

热门文章

  1. UE4代理委托(代理,动态代理,单播,多播)
  2. 千兆12光12电管理型工业以太网交换机 12千兆光12千兆电口宽温环网交换机
  3. 【时间之外】面向监狱的编程?该学学网络安全法了(2)
  4. Android辅助工具助手-keep 自动点赞器
  5. 电脑html动态桌面壁纸制作,电脑如何制作动态壁纸_电脑上怎么搞动态壁纸-win7之家...
  6. Linux centos redhat 装NVIDIA显卡驱动
  7. 通达信指标公式编写答疑汇总(二)
  8. vue+ElementUI实现订单页动态添加产品效果
  9. python 写入excel数据xlwt_用python包xlwt将数据写入Excel中
  10. 商标变更的重要性不及时变更的损失