Part8 :毕业设计管理系统--下载文件,审核阶段任务,审核状态

该博客内容涉及两个主要部分:文件下载和阶段任务审核。在文件下载部分,通过学生上传文件的ID,从数据库中查找URL,读取文件到内存,并返回给前端进行加载。在审核阶段任务部分,通过教师ID获取其管理的所有学生阶段任务,遍历任务并获取学生信息、课题记录,创建VO类展示在前端页面,同时提供审核操作,更新任务状态。
摘要由CSDN通过智能技术生成

下载文件
点击下载,(把student_upload_file的id传递回来,在数据库中找到url的记录,读取文件),读到内存中,通过内存的数据流,传递回前端页面,进行加载。
@RequestMapping(“downloadFile”)
//返回一个文件的流,通过字节数组来返回
public ResponseEntity<byte[]> downloadFile(int id, HttpServletRequest request) throws IOException {
//找到对应的记录
StudentUploadFile studentUploadFile=studentUploadFileDao.selectById(id);
//获取到url
String fileUrl=studentUploadFile.getFileUrl();
//转换成对象
File file=new File(fileUrl);
//让浏览器下载文件
HttpHeaders headers=new HttpHeaders();
//对fileName进行编码,解决下载时文件名的乱码问题。
String fileName=file.getName();
fileName= URLEncoder.encode(fileName,“UTF-8”);
//这里是配置下载时的文件名和后缀
headers.setContentDispositionFormData(“attachment”,fileName);
//设置响应的类型,如果不设置,有些浏览器不会启动文件下载的逻辑
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
//读取文件,转换成字节数组
byte[] bytes = FileUtils.readFileToByteArray(file);
return new ResponseEntity<byte[]>(bytes,headers,HttpStatus.CREATED);
}
审核阶段任务:
@RequestMapping(“checkJieDuanTaskView”)
public String checkJieDuanTaskView(HttpServletRequest request){
/*
1.通过教师id,获取该教师所有学生的阶段任务 第一张表
2.遍历阶段任务,获取每个学生的id,然后查询学生姓名 第二张表
3.通过学生id,找到KetiRecord记录 第三张表
4.通过KetiRecord里的ketiId,找到对应的课题,获取课题名 第四张表
*/
//获取session中教师id
HttpSession session = request.getSession();
User user = (User) session.getAttribute(“user”);
//通过教师id查询这个教师管理的所有阶段性任务
List jieDuanTasks=jieDuanTaskDao.selectByTeacherId(user.getTeacherId());
//创建一个集合,存储结果
List result = new ArrayList();
for (JieDuanTask task:jieDuanTasks){
Student student = studentDao.selectById(task.getStudentId());
KetiRecord record=ketiRecordDao.selectByStudentId(student.getId());
//创建VO类,用于显示在页面上的信息
TaskVo vo = new TaskVo();
vo.setId(task.getId());
vo.setName(student.getName());
if (task.getStatus()==0) {
vo.setStatus(“未审核”);
}else if (task.getStatus()==1){
vo.setStatus(“通过”);
}else {
vo.setStatus(“不通过”);
}
vo.setDescription(task.getDescription());
//如果学生已经选课了
if (record!=null){
Keti keti=ketiDao.selectById(record.getKetiId());
vo.setKetiName(keti.getName());
}
result.add(vo);
}
//在页面显示数据
request.setAttribute(“list”,result);
//跳转页面
return “teacher/teacherCheckProgressNotification”;
}

```java

<%-- items:要进行迭代的集合。var:迭代参数的名称。
var:在迭代体中可以使用的变量的名称,用来表示每一个迭代变量。–%>
<c:forEach items=" l i s t " v a r = " v o " > < t r > < t d > {list}" var="vo"> <tr> <td> list"var="vo"><tr><td>{vo.name}
v o . k e t i N a m e < / t d > < t d > {vo.ketiName}</td> <td> vo.ketiName</td><td>{vo.description}
v o . s t a t u s < / t d > < t d > < a h r e f = " c h e c k J i e D u a n T a s k ? i d = {vo.status}</td> <td> <a href="checkJieDuanTask?id= vo.status</td><td><ahref="checkJieDuanTask?id={vo.id}&status=1">通过
   
未通过

						</tr>
					</c:forEach>

***审核状态:***

```java
@RequestMapping("checkJieDuanTask")
public String checkJieDuanTask(int id,int status){
jieDuanTaskDao.updateStatus(id,status);
return "redirect:checkJieDuanTaskView";
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值