vue tinymce将内容导出为word上传到服务器,并回显完整代码
时间: 2024-01-21 11:19:12 浏览: 139
可以使用JSZip和FileSaver.js库来将tinymce编辑器中的内容导出为Word文档,并上传到服务器。下面是完整的代码:
HTML部分:
```html
<!-- 引入JSZip和FileSaver.js库 -->
<script src="https://cdn.jsdelivr.net/npm/jszip/dist/jszip.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/file-saver/dist/FileSaver.min.js"></script>
<!-- 编辑器部分 -->
<textarea id="myTextarea"></textarea>
<!-- 导出按钮 -->
<button id="exportBtn">导出为Word</button>
```
JS部分:
```javascript
// 获取编辑器内容
var content = tinymce.get('myTextarea').getContent();
// 创建Word文档
var zip = new JSZip();
var folder = zip.folder("word");
var xmlContent = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n' +
'<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">\n' +
' <w:body>\n' +
' <w:p>\n' +
' <w:r>\n' +
' <w:t>' + content + '</w:t>\n' +
' </w:r>\n' +
' </w:p>\n' +
' </w:body>\n' +
'</w:document>';
folder.file("document.xml", xmlContent);
var zipContent = zip.generate({type: "blob"});
// 下载Word文档
document.getElementById("exportBtn").addEventListener("click", function() {
saveAs(zipContent, "document.docx");
});
// 上传Word文档到服务器
var formData = new FormData();
formData.append("file", zipContent, "document.docx");
fetch("/upload", {
method: "POST",
body: formData
}).then(response => {
console.log(response);
}).catch(error => {
console.error(error);
});
```
注意:在上传文件到服务器时,需要将文件内容放到FormData中,并设置文件名和文件类型,然后使用fetch或XMLHttpRequest进行上传。具体的上传方式需要根据你的后端框架来确定。
阅读全文