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")
public void export(String contentId,HttpServletResponse response) throws IOException {
public void export(String contentId, String courseName,HttpServletResponse response) throws IOException {
//将courseId以逗号分割转换为list
List<String> contentIds = Arrays.asList(contentId.split(","));
Map<String, String>map=new HashMap<>();
@@ -393,17 +393,26 @@ public class CoursePortalApi extends ApiBaseController{
if(course==null || course.getDeleted()){
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) {
throw new RuntimeException("导出异常");
}
long totalCompressedSize = 0;
String encodedFilename = URLEncoder.encode("作业.zip")
String encodedFilename = URLEncoder.encode(courseName+"【作业】.zip")
.replace("+", "%20") // 空格替换为"%20"
.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())) {
for (Map.Entry<String, String> e : map.entrySet()) {
File fileToZip = new File(e.getValue());
@@ -429,16 +438,6 @@ public class CoursePortalApi extends ApiBaseController{
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")