mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-07 01:46:47 +08:00
作业导出500
This commit is contained in:
@@ -404,49 +404,79 @@ public class CoursePortalApi extends ApiBaseController{
|
|||||||
if (totalFileSize > 2L * 1024 * 1024 * 1024) {
|
if (totalFileSize > 2L * 1024 * 1024 * 1024) {
|
||||||
return success("您要下载的作业过大,请分批下载或联系管理员!");
|
return success("您要下载的作业过大,请分批下载或联系管理员!");
|
||||||
}
|
}
|
||||||
|
// 创建压缩文件
|
||||||
|
String zipFilePath = "/home/www/elearning/upload/saveZip/" + courseName+"【作业】" + ".zip";
|
||||||
|
createZipFile(map, zipFilePath);
|
||||||
|
return success(zipFilePath);
|
||||||
// 创建一个临时文件用于存储ZIP文件
|
// 创建一个临时文件用于存储ZIP文件
|
||||||
File tempZipFile = new File("/home/www/elearning/upload/temp.zip");
|
// File tempZipFile = new File("/home/www/elearning/upload/temp.zip");
|
||||||
|
//
|
||||||
|
// try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(tempZipFile))) {
|
||||||
|
// for (Map.Entry<String, String> e : map.entrySet()) {
|
||||||
|
// File fileToZip = new File(e.getValue());
|
||||||
|
// // 添加 ZIP 条目
|
||||||
|
// ZipEntry entry = new ZipEntry(e.getKey());
|
||||||
|
// entry.setSize(fileToZip.length());
|
||||||
|
//
|
||||||
|
// zos.putNextEntry(entry);
|
||||||
|
//
|
||||||
|
// try (FileInputStream fis = new FileInputStream(fileToZip)) {
|
||||||
|
// byte[] buffer = new byte[4096];
|
||||||
|
// int len;
|
||||||
|
// while ((len = fis.read(buffer)) > 0) {
|
||||||
|
// zos.write(buffer, 0, len);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// zos.closeEntry();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// // 将临时文件移动到指定位置
|
||||||
|
// Path source = tempZipFile.toPath();
|
||||||
|
// //生成uuid
|
||||||
|
//// String uuid = UUID.randomUUID().toString();
|
||||||
|
// Path destination = Paths.get("/home/www/elearning/upload/saveZip/" + courseName+"【作业】" + ".zip");
|
||||||
|
//
|
||||||
|
// // 确保目标目录存在
|
||||||
|
// Files.createDirectories(destination.getParent());
|
||||||
|
//
|
||||||
|
// // 删除目标文件如果已存在
|
||||||
|
// if (Files.exists(destination)) {
|
||||||
|
// Files.delete(destination);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 移动文件
|
||||||
|
// Files.copy(source, destination, StandardCopyOption.REPLACE_EXISTING);
|
||||||
|
//
|
||||||
|
// // 返回文件路径给前端
|
||||||
|
// String filePath = destination.toAbsolutePath().toString();
|
||||||
|
// return success(filePath);
|
||||||
|
}
|
||||||
|
private static void createZipFile(Map<String, String> map, String zipFilePath) throws IOException {
|
||||||
|
try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFilePath))) {
|
||||||
|
for (Map.Entry<String, String> entry : map.entrySet()) {
|
||||||
|
String key = entry.getKey();
|
||||||
|
String value = entry.getValue();
|
||||||
|
|
||||||
try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(tempZipFile))) {
|
File file = new File(value);
|
||||||
for (Map.Entry<String, String> e : map.entrySet()) {
|
if (!file.exists()) {
|
||||||
File fileToZip = new File(e.getValue());
|
continue;
|
||||||
// 添加 ZIP 条目
|
}
|
||||||
ZipEntry entry = new ZipEntry(e.getKey());
|
|
||||||
entry.setSize(fileToZip.length());
|
|
||||||
|
|
||||||
zos.putNextEntry(entry);
|
byte[] buffer = new byte[1024];
|
||||||
|
FileInputStream fis = new FileInputStream(file);
|
||||||
|
ZipEntry zipEntry = new ZipEntry(key);
|
||||||
|
zos.putNextEntry(zipEntry);
|
||||||
|
|
||||||
try (FileInputStream fis = new FileInputStream(fileToZip)) {
|
int length;
|
||||||
byte[] buffer = new byte[4096];
|
while ((length = fis.read(buffer)) > 0) {
|
||||||
int len;
|
zos.write(buffer, 0, length);
|
||||||
while ((len = fis.read(buffer)) > 0) {
|
|
||||||
zos.write(buffer, 0, len);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
zos.closeEntry();
|
zos.closeEntry();
|
||||||
|
fis.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 将临时文件移动到指定位置
|
|
||||||
Path source = tempZipFile.toPath();
|
|
||||||
//生成uuid
|
|
||||||
// String uuid = UUID.randomUUID().toString();
|
|
||||||
Path destination = Paths.get("/home/www/elearning/upload/saveZip/" + courseName+"【作业】" + ".zip");
|
|
||||||
|
|
||||||
// 确保目标目录存在
|
|
||||||
Files.createDirectories(destination.getParent());
|
|
||||||
|
|
||||||
// 删除目标文件如果已存在
|
|
||||||
if (Files.exists(destination)) {
|
|
||||||
Files.delete(destination);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 移动文件
|
|
||||||
Files.copy(source, destination, StandardCopyOption.REPLACE_EXISTING);
|
|
||||||
|
|
||||||
// 返回文件路径给前端
|
|
||||||
String filePath = destination.toAbsolutePath().toString();
|
|
||||||
return success(filePath);
|
|
||||||
}
|
}
|
||||||
@GetMapping("/detail-study")
|
@GetMapping("/detail-study")
|
||||||
public JsonResponse<List<CourseStudyVo>> detailStudy(String courseId, String aid){
|
public JsonResponse<List<CourseStudyVo>> detailStudy(String courseId, String aid){
|
||||||
|
|||||||
Reference in New Issue
Block a user