mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-09 19:06:49 +08:00
Merge branch 'zcwy-0724' into dev0525
This commit is contained in:
@@ -369,7 +369,7 @@ public class CoursePortalApi extends ApiBaseController{
|
|||||||
}
|
}
|
||||||
//作业导出
|
//作业导出
|
||||||
@GetMapping("/export")
|
@GetMapping("/export")
|
||||||
public void export(String contentId,HttpServletResponse response) throws IOException {
|
public void export(String contentId, String courseName,HttpServletResponse response) throws IOException {
|
||||||
//将courseId以逗号分割转换为list
|
//将courseId以逗号分割转换为list
|
||||||
List<String> contentIds = Arrays.asList(contentId.split(","));
|
List<String> contentIds = Arrays.asList(contentId.split(","));
|
||||||
Map<String, String>map=new HashMap<>();
|
Map<String, String>map=new HashMap<>();
|
||||||
@@ -393,17 +393,26 @@ public class CoursePortalApi extends ApiBaseController{
|
|||||||
if(course==null || course.getDeleted()){
|
if(course==null || course.getDeleted()){
|
||||||
throw new RuntimeException("课程不存在或已被删除");
|
throw new RuntimeException("课程不存在或已被删除");
|
||||||
}
|
}
|
||||||
map.put(course.getName()+"--"+courseContent.getContentName()+extension, e.getFile());
|
map.put(course.getName()+"--"+courseContent.getContentName()+extension, "/home/www/elearning/upload"+e.getFile());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException("导出异常");
|
throw new RuntimeException("导出异常");
|
||||||
}
|
}
|
||||||
|
String encodedFilename = URLEncoder.encode(courseName+"【作业】.zip")
|
||||||
long totalCompressedSize = 0;
|
|
||||||
String encodedFilename = URLEncoder.encode("作业.zip")
|
|
||||||
.replace("+", "%20") // 空格替换为"%20"
|
.replace("+", "%20") // 空格替换为"%20"
|
||||||
.replace("%2F", "/"); // 解决斜杠问题
|
.replace("%2F", "/"); // 解决斜杠问题
|
||||||
|
StringBuilder contentDispositionValue = new StringBuilder();
|
||||||
|
contentDispositionValue.append("attachment; filename=\"")
|
||||||
|
.append(encodedFilename)
|
||||||
|
.append("\"")
|
||||||
|
.append("; filename*=utf-8''")
|
||||||
|
.append(encodedFilename);
|
||||||
|
|
||||||
|
// 设置响应类型和Content-Disposition头
|
||||||
|
response.setContentType("application/zip");
|
||||||
|
response.setHeader("Content-Disposition", contentDispositionValue.toString());
|
||||||
|
long totalCompressedSize = 0;
|
||||||
try (ZipOutputStream zos = new ZipOutputStream(response.getOutputStream())) {
|
try (ZipOutputStream zos = new ZipOutputStream(response.getOutputStream())) {
|
||||||
for (Map.Entry<String, String> e : map.entrySet()) {
|
for (Map.Entry<String, String> e : map.entrySet()) {
|
||||||
File fileToZip = new File(e.getValue());
|
File fileToZip = new File(e.getValue());
|
||||||
@@ -429,16 +438,6 @@ public class CoursePortalApi extends ApiBaseController{
|
|||||||
|
|
||||||
zos.closeEntry();
|
zos.closeEntry();
|
||||||
}
|
}
|
||||||
StringBuilder contentDispositionValue = new StringBuilder();
|
|
||||||
contentDispositionValue.append("attachment; filename=")
|
|
||||||
.append(encodedFilename)
|
|
||||||
.append(";")
|
|
||||||
.append("filename*=")
|
|
||||||
.append("utf-8''")
|
|
||||||
.append(encodedFilename);
|
|
||||||
// 设置响应类型和Content-Disposition头
|
|
||||||
response.setContentType("application/zip");
|
|
||||||
response.setHeader("Content-Disposition", contentDispositionValue.toString());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@GetMapping("/detail-study")
|
@GetMapping("/detail-study")
|
||||||
|
|||||||
Reference in New Issue
Block a user