package com.qxy.studentinternshipsystem.controller;
import com.qxy.studentinternshipsystem.service.FileService;
import com.qxy.studentinternshipsystem.utils.ResponseMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.List;
import java.util.UUID;
@Controller
@RequestMapping("/file")
public class FileController {
@Autowired
private FileService fileService;
/**
* 校验上传的文件,进行保存
*/
@RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
public @ResponseBody
ResponseMessage uploadFile(@RequestParam("multipartFile") MultipartFile multipartFile ,
@RequestParam("fileDescribe") String fileDescribe,
@RequestParam("type") Integer type) throws IOException {
System.out.println(fileDescribe);
//设置文件保存路径
final String path = "D:\\file\\";
String fileName = multipartFile.getOriginalFilename();
//封装文件对象
File file = new File(path, fileName);
//判断文件夹是否存在,如果不存在则创建
if (!file.exists()) {
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
file.createNewFile();
}
try {
// 文件写入
multipartFile.transferTo(file);
} catch (Exception e) {
e.printStackTrace();
return new ResponseMessage("0", "操作失败");
}
ResponseMessage responseMessage = new ResponseMessage("1", "操作成功");
if(fileName != null && !"".equals(fileName) ){
//写入数据库
com.qxy.studentinternshipsystem.entity.File file1 = new com.qxy.studentinternshipsystem.entity.File();
file1.setFileId(UUID.randomUUID().toString());
file1.setFileName(fileName);
file1.setFilePath(path + fileName);
file1.setFileDescribe(fileDescribe);
file1.setType(type);
fileService.insertFile(file1);
}
return responseMessage;
}
//获取所有类型为0的文件,即教学资料
@RequestMapping("/getAllFile")
public @ResponseBody ResponseMessage getAllFile(){
try {
List<com.qxy.studentinternshipsystem.entity.File> fileList = fileService.getAllFile(0);
ResponseMessage responseMessage = new ResponseMessage("1","获取成功");
responseMessage.getData().put("fileList",fileList);
return responseMessage;
}
catch (Exception e){
e.printStackTrace();
return new ResponseMessage("0","获取失败");
}
}
//获取所有类型为1的文件,即作业
@RequestMapping("/getAllWorkFile")
public @ResponseBody ResponseMessage getAllWorkFile(){
try {
List<com.qxy.studentinternshipsystem.entity.File> fileList = fileService.getAllFile(1);
ResponseMessage responseMessage = new ResponseMessage("1","获取成功");
responseMessage.getData().put("fileList",fileList);
return responseMessage;
}
catch (Exception e){
e.printStackTrace();
return new ResponseMessage("0","获取失败");
}
}
/**
* 文件下载
* @param file
* @param response
* @return
*/
@RequestMapping(value = "/downloadFile", method = RequestMethod.POST)
public @ResponseBody
ResponseMessage downloadFile(@RequestBody com.qxy.studentinternshipsystem.entity.File file, HttpServletResponse response) {
//获取文件的信息
try {
//拿到文件路径
String filePath = file.getFilePath();
File f = new File(filePath);
if (f.exists()) {
byte[] buffer = new byte[1024];
FileInputStream fis = null;
BufferedInputStream bis = null;
try {
fis = new FileInputStream(f);
bis = new BufferedInputStream(fis);
//从响应中拿到输出流对象
OutputStream os = response.getOutputStream();
int i = bis.read(buffer);
while (i != -1) {
os.write(buffer, 0, i);
i = bis.read(buffer);
}
return new ResponseMessage("1", "下载文件成功");
} catch (Exception e) {
e.printStackTrace();
return new ResponseMessage("-1", "下载文件失败");
} finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
return new ResponseMessage("-1", "下载文件不存在");
} catch (Exception e) {
e.printStackTrace();
return new ResponseMessage("-1", "下载文件失败");
}
}
@RequestMapping(value = "/updateFile", method = RequestMethod.POST)
public @ResponseBody
ResponseMessage updateFile(@RequestBody com.qxy.studentinternshipsystem.entity.File file){
System.out.println(file);
try {
fileService.updateFile(file);
return new ResponseMessage("1","修改成功");
}
catch (Exception e){
e.printStackTrace();
return new ResponseMessage("0","修改失败");
}
}
@RequestMapping("/deleteFile")
public @ResponseBody
ResponseMessage deleteFile(String fileId){
try {
fileService.deleteFile(fileId);
return new ResponseMessage("1","删除成功");
}
catch (Exception e){
e.printStackTrace();
return new ResponseMessage("0","删除失败");
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目介绍】 Java基于springboot的大学生实习管理系统后端源码+数据库脚本.zip 【特别强调】 1、csdn上资源保证是完整最新,会不定期更新优化; 2、请用自己的账号在csdn官网下载,若通过第三方代下,博主不对您下载的资源作任何保证,且不提供任何形式的技术支持和答疑!!! 该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶, 或者实际项目借鉴参考! 当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。如果基础还行,也可在此代码基础上进行修改,以实现其他功能。
资源推荐
资源详情
资源评论





























收起资源包目录


















































































共 58 条
- 1
资源评论


onnx
- 粉丝: 1w+
- 资源: 5805
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 【东吴证券-2025研报】2024年报点评:结转及减值拖累业绩,积极回购提振信心.pdf
- 【东吴证券-2025研报】2024年年报点评:经纪及两融市占率上行显著,基金代销仍受降费影响.pdf
- 【东吴证券-2025研报】2024年年报点评:业绩亮眼,25年高景气度可期.pdf
- Delphi 12.3控件之UPX-4.2.2(压缩exe文件).rar
- 【东吴证券-2025研报】非银金融行业跟踪周报:成交仍活跃;保险顺周期特征显现.pdf
- nginx1.18.0 windwos和linux(centos7)安装包
- 【东吴证券-2025研报】海外周报:通胀与关税担忧持续,黄金破3000创新高.pdf
- 3gpp-29504-j20.docx
- 【格林期货-2025研报】市场快讯:巴西2024 25榨季基本结束,关注新季开产情况.pdf
- 【东吴证券-2025研报】汽车行研札记08期:2025年整车框架需要重大调整.pdf
- 【东吴证券-2025研报】全球市场观察系列:美股尚在“排毒”,“西降”还不至于.pdf
- 【东吴证券-2025研报】食品饮料行业跟踪周报:周专题:政策春风至,加快乳业复苏.pdf
- 【东兴证券-2025研报】食品饮料行业:市场预期逐渐改变,关注短期估值修复行情.pdf
- Delphi 12.3控件之QRCodeScaner.zip
- 【东证期货-2025研报】金工策略周报.pdf
- postgresql-14.12-2-windows-x64.exe
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
