Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ssssssss-team
magic-api
提交
8d848d8e
M
magic-api
项目概览
ssssssss-team
/
magic-api
9 个月 前同步成功
通知
41
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
magic-api
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
8d848d8e
编写于
4月 30, 2023
作者:
J
jmxd
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增强导出文件的兼容性,解决某些情况导出的文件格式不正确的问题
上级
26ab11eb
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
45 addition
and
18 deletion
+45
-18
magic-api-servlet/magic-api-servlet-jakarta/src/main/java/org/ssssssss/magicapi/servlet/jakarta/MagicJakartaHttpServletResponse.java
...capi/servlet/jakarta/MagicJakartaHttpServletResponse.java
+10
-0
magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEHttpServletResponse.java
...gicapi/servlet/javaee/MagicJavaEEHttpServletResponse.java
+10
-0
magic-api/src/main/java/org/ssssssss/magicapi/core/servlet/MagicHttpServletResponse.java
...sssss/magicapi/core/servlet/MagicHttpServletResponse.java
+4
-0
magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicWorkbenchController.java
.../ssssssss/magicapi/core/web/MagicWorkbenchController.java
+21
-18
未找到文件。
magic-api-servlet/magic-api-servlet-jakarta/src/main/java/org/ssssssss/magicapi/servlet/jakarta/MagicJakartaHttpServletResponse.java
浏览文件 @
8d848d8e
...
...
@@ -42,6 +42,16 @@ public class MagicJakartaHttpServletResponse implements MagicHttpServletResponse
response
.
addCookie
(
cookie
.
getCookie
());
}
@Override
public
void
setContentType
(
String
contentType
)
{
response
.
setContentType
(
contentType
);
}
@Override
public
void
setCharacterEncoding
(
String
characterEncoding
)
{
response
.
setCharacterEncoding
(
characterEncoding
);
}
@Override
public
OutputStream
getOutputStream
()
throws
IOException
{
return
response
.
getOutputStream
();
...
...
magic-api-servlet/magic-api-servlet-javaee/src/main/java/org/ssssssss/magicapi/servlet/javaee/MagicJavaEEHttpServletResponse.java
浏览文件 @
8d848d8e
...
...
@@ -42,6 +42,16 @@ public class MagicJavaEEHttpServletResponse implements MagicHttpServletResponse
response
.
addCookie
(
cookie
.
getCookie
());
}
@Override
public
void
setContentType
(
String
contentType
)
{
response
.
setContentType
(
contentType
);
}
@Override
public
void
setCharacterEncoding
(
String
characterEncoding
)
{
response
.
setCharacterEncoding
(
characterEncoding
);
}
@Override
public
OutputStream
getOutputStream
()
throws
IOException
{
return
response
.
getOutputStream
();
...
...
magic-api/src/main/java/org/ssssssss/magicapi/core/servlet/MagicHttpServletResponse.java
浏览文件 @
8d848d8e
...
...
@@ -14,6 +14,10 @@ public interface MagicHttpServletResponse {
public
void
addCookie
(
MagicCookie
cookie
);
public
void
setContentType
(
String
contentType
);
public
void
setCharacterEncoding
(
String
characterEncoding
);
public
OutputStream
getOutputStream
()
throws
IOException
;
public
Collection
<
String
>
getHeaderNames
();
...
...
magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicWorkbenchController.java
浏览文件 @
8d848d8e
...
...
@@ -5,8 +5,6 @@ import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
import
org.springframework.core.io.ClassPathResource
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.util.ResourceUtils
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
...
...
@@ -22,7 +20,6 @@ import org.ssssssss.magicapi.core.service.MagicAPIService;
import
org.ssssssss.magicapi.core.servlet.MagicHttpServletRequest
;
import
org.ssssssss.magicapi.core.servlet.MagicHttpServletResponse
;
import
org.ssssssss.magicapi.modules.db.SQLModule
;
import
org.ssssssss.magicapi.modules.servlet.ResponseModule
;
import
org.ssssssss.magicapi.utils.ClassScanner
;
import
org.ssssssss.magicapi.utils.IoUtils
;
import
org.ssssssss.magicapi.utils.SignUtils
;
...
...
@@ -33,10 +30,8 @@ import org.ssssssss.script.ScriptClass;
import
org.ssssssss.script.parsing.Span
;
import
org.ssssssss.script.parsing.Tokenizer
;
import
java.io.ByteArrayInputStream
;
import
java.io.ByteArrayOutputStream
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.*
;
import
java.net.URLEncoder
;
import
java.nio.file.Files
;
import
java.nio.file.Paths
;
import
java.util.*
;
...
...
@@ -256,37 +251,45 @@ public class MagicWorkbenchController extends MagicController implements MagicEx
}
@RequestMapping
(
value
=
"/config-js"
)
@ResponseBody
@Valid
(
requireLogin
=
false
)
public
ResponseEntity
<?>
configJs
()
{
ResponseEntity
.
BodyBuilder
responseBuilder
=
ResponseEntity
.
ok
().
contentType
(
MediaType
.
parseMediaType
(
"application/javascript"
));
public
void
configJs
(
MagicHttpServletResponse
response
)
throws
IOException
{
response
.
setContentType
(
"application/javascript"
);
response
.
setCharacterEncoding
(
"UTF-8"
);
byte
[]
bytes
=
"var MAGIC_EDITOR_CONFIG = {}"
.
getBytes
();
if
(
configuration
.
getEditorConfig
()
!=
null
)
{
try
{
String
path
=
configuration
.
getEditorConfig
();
if
(
path
.
startsWith
(
ResourceUtils
.
CLASSPATH_URL_PREFIX
))
{
path
=
path
.
substring
(
ResourceUtils
.
CLASSPATH_URL_PREFIX
.
length
());
return
responseBuilder
.
body
(
IoUtils
.
bytes
(
new
ClassPathResource
(
path
).
getInputStream
()
));
bytes
=
IoUtils
.
bytes
(
new
ClassPathResource
(
path
).
getInputStream
(
));
}
File
file
=
ResourceUtils
.
getFile
(
configuration
.
getEditorConfig
());
return
responseBuilder
.
body
(
Files
.
readAllBytes
(
Paths
.
get
(
file
.
toURI
()
)));
bytes
=
Files
.
readAllBytes
(
Paths
.
get
(
file
.
toURI
(
)));
}
catch
(
IOException
e
)
{
logger
.
warn
(
"读取编辑器配置文件{}失败"
,
configuration
.
getEditorConfig
());
}
}
return
responseBuilder
.
body
(
"var MAGIC_EDITOR_CONFIG = {}"
.
getBytes
());
try
(
OutputStream
stream
=
response
.
getOutputStream
())
{
stream
.
write
(
bytes
);
stream
.
flush
();
}
}
@RequestMapping
(
"/download"
)
@Valid
(
authorization
=
Authorization
.
DOWNLOAD
)
@ResponseBody
public
ResponseEntity
<?>
download
(
String
groupId
,
@RequestBody
(
required
=
false
)
List
<
SelectedResource
>
resources
,
MagicHttpServletRequest
request
)
throws
IOException
{
public
void
download
(
String
groupId
,
@RequestBody
(
required
=
false
)
List
<
SelectedResource
>
resources
,
MagicHttpServletRequest
request
,
MagicHttpServletResponse
response
)
throws
IOException
{
isTrue
(
allowVisit
(
request
,
Authorization
.
DOWNLOAD
),
PERMISSION_INVALID
);
response
.
setContentType
(
"application/octet-stream"
);
ByteArrayOutputStream
os
=
new
ByteArrayOutputStream
();
magicAPIService
.
download
(
groupId
,
resources
,
os
);
String
filename
=
"magic-api-all.zip"
;
if
(
StringUtils
.
isBlank
(
groupId
))
{
return
ResponseModule
.
download
(
os
.
toByteArray
(),
"magic-api-group.zip"
);
}
else
{
return
ResponseModule
.
download
(
os
.
toByteArray
(),
"magic-api-all.zip"
);
filename
=
"magic-api-group.zip"
;
}
response
.
setHeader
(
"Content-Disposition"
,
"attachment; filename="
+
URLEncoder
.
encode
(
filename
,
"UTF-8"
));
try
(
OutputStream
stream
=
response
.
getOutputStream
())
{
stream
.
write
(
os
.
toByteArray
());
stream
.
flush
();
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录