feat: 在线编辑文件接收改为后端主动下载
This commit is contained in:
+7
-10
@@ -1,6 +1,7 @@
|
||||
package com.jero.modules.onlyoffice.controller;
|
||||
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.api.vo.ResultCommon;
|
||||
@@ -17,7 +18,6 @@ import com.sini.com.spire.doc.documents.PageOrientation;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.mock.web.MockMultipartHttpServletRequest;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
@@ -76,23 +76,18 @@ public class OnlyOfficeController {
|
||||
log.info("**********onlyoffice接收文档接口获得结果body************" + body);
|
||||
|
||||
String downloadUri = (String) jsonObj.get("url");
|
||||
if (StrUtil.isBlank(downloadUri)) {
|
||||
return;
|
||||
}
|
||||
|
||||
log.info("**********onlyoffice接收文档接口获得downloadUri************" + downloadUri);
|
||||
// 创建临时文件
|
||||
File file = File.createTempFile("onlyoffice", ".docx");
|
||||
downloadNetFile(downloadUri, file);
|
||||
|
||||
// 将file转换为MultiPartFile
|
||||
// 创建一个 MockMultipartHttpServletRequest 对象
|
||||
MockMultipartHttpServletRequest mockRequest = new MockMultipartHttpServletRequest();
|
||||
// 将文件转换为 InputStream
|
||||
InputStream inputStream = Files.newInputStream(file.toPath());
|
||||
// 使用工具类转换 InputStream 到 MultipartFile 对象
|
||||
MultipartFile multipartFile = IntekeyUtils.convertMultipart(inputStream, fileNm);
|
||||
// 将 MultipartFile 添加到 MockMultipartHttpServletRequest 中
|
||||
mockRequest.addFile(multipartFile);
|
||||
mockRequest.setParameter("biz", "onlyOffice");
|
||||
Result<OSSFile> result = ossFileService.outUpload(mockRequest);
|
||||
Result<OSSFile> result = ossFileService.commonUpload(multipartFile, "onlyoffice");
|
||||
// 将文件名字改成和原始文件一样
|
||||
OSSFile dbFile = ossFileService.getById(fileId);
|
||||
if (result.isSuccess()) {
|
||||
@@ -104,6 +99,8 @@ public class OnlyOfficeController {
|
||||
ossFile.setOnlId(dbFile.getOnlId());
|
||||
ossFileService.updateById(ossFile);
|
||||
}
|
||||
int saved = 0;
|
||||
writer.write("{\"error\":" + saved + "}");
|
||||
} catch (Exception e) {
|
||||
log.error("onlyOffice接收文档接口异常", e);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user