File tree 2 files changed +28
-0
lines changed
backend/framework/src/main/java/org/jumpserver/chen/framework
2 files changed +28
-0
lines changed Original file line number Diff line number Diff line change 12
12
import org .jumpserver .chen .framework .datasource .sql .SQLQueryResult ;
13
13
import org .jumpserver .chen .framework .jms .entity .CommandRecord ;
14
14
import org .jumpserver .chen .framework .session .SessionManager ;
15
+ import org .jumpserver .chen .framework .utils .CodeUtils ;
15
16
import org .jumpserver .chen .framework .ws .io .PacketIO ;
16
17
17
18
import java .io .BufferedWriter ;
18
19
import java .io .IOException ;
19
20
import java .nio .file .Files ;
21
+ import java .sql .Clob ;
20
22
import java .sql .SQLException ;
21
23
import java .time .LocalDateTime ;
22
24
import java .time .format .DateTimeFormatter ;
@@ -164,6 +166,9 @@ public void export(String scope) throws SQLException {
164
166
if (row .get (field .getName ()) == null ) {
165
167
writer .write ("NULL" );
166
168
writer .write ("," );
169
+ } else if (row .get (field .getName ()) instanceof Clob clob ) {
170
+ writer .write (CodeUtils .escapeCsvValue (clob .getSubString (1 , (int ) clob .length ())));
171
+ writer .write ("," );
167
172
} else {
168
173
writeString (writer , row .get (field .getName ()));
169
174
writer .write ("," );
@@ -190,6 +195,9 @@ public void export(String scope) throws SQLException {
190
195
if (o == null ) {
191
196
writer .write ("NULL" );
192
197
writer .write ("," );
198
+ } else if (o instanceof Clob clob ) {
199
+ writer .write (CodeUtils .escapeCsvValue (clob .getSubString (1 , (int ) clob .length ())));
200
+ writer .write ("," );
193
201
} else {
194
202
writer .write (o .toString ());
195
203
writer .write ("," );
Original file line number Diff line number Diff line change
1
+ package org .jumpserver .chen .framework .utils ;
2
+
3
+
4
+ public class CodeUtils {
5
+
6
+ /**
7
+ * 对导出文件的换行符进行转义
8
+ * @param value
9
+ * @return
10
+ */
11
+ public static String escapeCsvValue (String value ) {
12
+ if (value .contains ("\" " ) || value .contains ("," ) || value .contains ("\n " )) {
13
+ // 对引号进行转义
14
+ value = value .replace ("\" " , "\" \" " );
15
+ // 用引号包围值
16
+ value = "\" " + value + "\" " ;
17
+ }
18
+ return value ;
19
+ }
20
+ }
You can’t perform that action at this time.
0 commit comments