Merge branch 'zcwy-0724' into dev0525

This commit is contained in:
nisen
2024-07-25 16:05:13 +08:00

View File

@@ -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")