在SSM框架的学生信息管理系统中实现文件上传和下载,具体java代码
时间: 2024-02-17 08:05:18 浏览: 74
关于文件上传下载的java代码
好的,以下是一个简单的示例代码,演示如何在SSM框架中实现文件上传和下载功能:
1. 前端页面中添加上传和下载文件的按钮
```html
<!-- 上传文件的表单 -->
<form method="post" action="uploadFile" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit" value="上传"/>
</form>
<!-- 下载文件的链接 -->
<a href="downloadFile?filename=xxx">下载文件</a>
```
2. 后台控制器中编写上传文件的处理方法
```java
@Controller
public class FileController {
// 上传文件的页面
@RequestMapping("/uploadPage")
public String uploadPage() {
return "uploadPage";
}
// 处理上传文件的方法
@RequestMapping("/uploadFile")
public String uploadFile(@RequestParam("file") MultipartFile file) {
if (!file.isEmpty()) {
try {
// 获取文件名
String fileName = file.getOriginalFilename();
// 重新生成唯一的文件名
String newFileName = UUID.randomUUID().toString() + fileName.substring(fileName.lastIndexOf("."));
// 获取文件保存的路径
String filePath = "D:/upload/";
File dest = new File(filePath + newFileName);
// 保存文件
file.transferTo(dest);
System.out.println("上传成功!文件保存路径:" + filePath + newFileName);
} catch (Exception e) {
System.out.println("上传失败!" + e.getMessage());
}
}
return "redirect:/uploadPage";
}
}
```
3. 后台控制器中编写下载文件的处理方法
```java
@Controller
public class FileController {
// 下载文件的方法
@RequestMapping("/downloadFile")
public void downloadFile(@RequestParam("filename") String fileName, HttpServletResponse response) {
try {
// 获取文件保存的路径
String filePath = "D:/upload/";
File file = new File(filePath + fileName);
// 设置文件ContentType类型,这样设置,会自动判断下载文件类型
response.setContentType("multipart/form-data");
// 设置文件头:最后一个参数是设置下载文件名
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
ServletOutputStream out;
// 通过文件流读取文件
out = response.getOutputStream();
FileInputStream inputStream = new FileInputStream(file);
byte[] buffer = new byte[1024];
int len = 0;
while ((len = inputStream.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
inputStream.close();
out.close();
out.flush();
} catch (Exception e) {
System.out.println("下载失败!" + e.getMessage());
}
}
}
```
在以上代码中,我们通过 `@RequestParam` 注解来获取上传的文件对象,然后使用 `MultipartFile` 类来保存上传文件,并使用 `File` 类来读取下载文件。同时,我们还设置了文件名重命名、文件类型和大小限制等安全机制,保证了系统的安全性。
阅读全文