0%

13.5.7 下载中心

13.5.7 下载中心

处理下载中心的DocumentController代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
package org.fkit.hrm.controller;

import java.io.File;
import java.util.List;
import javax.servlet.http.HttpSession;
import org.apache.commons.io.FileUtils;
import org.fkit.hrm.domain.Document;
import org.fkit.hrm.domain.User;
import org.fkit.hrm.service.HrmService;
import org.fkit.hrm.util.common.HrmConstants;
import org.fkit.hrm.util.tag.PageModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

/**
* @Description: 处理上传下载文件请求控制器
*/

@Controller
public class DocumentController
{
/**
* 自动注入UserService
*/
@Autowired
@Qualifier("hrmService")
private HrmService hrmService;

/**
* 处理/login请求
*/
@RequestMapping(value = "/document/selectDocument")
public String selectDocument(Model model, Integer pageIndex,
@ModelAttribute Document document)
{
PageModel pageModel = new PageModel();
if (pageIndex != null)
{
pageModel.setPageIndex(pageIndex);
}
/** 查询用户信息 */
List<Document> documents = hrmService.findDocument(document, pageModel);
model.addAttribute("documents", documents);
model.addAttribute("pageModel", pageModel);
return "document/document";

}

/**
* 处理添加请求
* @param String flag 标记, 1表示跳转到上传页面,2表示执行上传操作
* @param Notice notice 要添加的公告对象
* @param ModelAndView mv
*/
@RequestMapping(value = "/document/addDocument")
public ModelAndView addDocument(String flag,
@ModelAttribute Document document, ModelAndView mv,
HttpSession session) throws Exception
{
if (flag.equals("1"))
{
mv.setViewName("document/showAddDocument");
} else
{
// 上传文件路径
String path = session.getServletContext().getRealPath("/upload/");
System.out.println(path);
// 上传文件名
String fileName = document.getFile().getOriginalFilename();
// 将上传文件保存到一个目标文件当中
document.getFile()
.transferTo(new File(path + File.separator + fileName));

// 插入数据库
// 设置fileName
document.setFileName(fileName);
// 设置关联的User对象
User user = (User) session.getAttribute(HrmConstants.USER_SESSION);
document.setUser(user);
// 插入数据库
hrmService.addDocument(document);
// 返回
mv.setViewName("redirect:/document/selectDocument");
}
// 返回
return mv;
}

/**
* 处理删除文档请求
* @param String ids 需要删除的id字符串
* @param ModelAndView mv
*/
@RequestMapping(value = "/document/removeDocument")
public ModelAndView removeDocument(String ids, ModelAndView mv)
{
// 分解id字符串
String[] idArray = ids.split(",");
for (String id : idArray)
{
// 根据id删除文档
hrmService.removeDocumentById(Integer.parseInt(id));
}
// 设置客户端跳转到查询请求
mv.setViewName("redirect:/document/selectDocument");
// 返回ModelAndView
return mv;
}

/**
* 处理修改文档请求
* @param String flag 标记, 1表示跳转到修改页面,2表示执行修改操作
* @param Document document 要修改文档的对象
* @param ModelAndView mv
*/
@RequestMapping(value = "/document/updateDocument")
public ModelAndView updateDocument(String flag,
@ModelAttribute Document document, ModelAndView mv)
{
if (flag.equals("1"))
{
// 根据id查询文档
Document target = hrmService.findDocumentById(document.getId());
// 设置Model数据
mv.addObject("document", target);
// 设置跳转到修改页面
mv.setViewName("document/showUpdateDocument");
} else
{
// 执行修改操作
hrmService.modifyDocument(document);
// 设置客户端跳转到查询请求
mv.setViewName("redirect:/document/selectDocument");
}
// 返回
return mv;
}

/**
* 处理文档下载请求
* @param String flag 标记, 1表示跳转到修改页面,2表示执行修改操作
* @param Document document 要修改文档的对象
* @param ModelAndView mv
*/
@RequestMapping(value = "/document/downLoad")
public ResponseEntity<byte[]> downLoad(Integer id, HttpSession session)
throws Exception
{
// 根据id查询文档
Document target = hrmService.findDocumentById(id);
String fileName = target.getFileName();
// 上传文件路径
String path = session.getServletContext().getRealPath("/upload/");
// 获得要下载文件的File对象
File file = new File(path + File.separator + fileName);
// 创建springframework的HttpHeaders对象
HttpHeaders headers = new HttpHeaders();
// 下载显示的文件名,解决中文名称乱码问题
String downloadFielName = new String(fileName.getBytes("UTF-8"),
"iso-8859-1");
// 通知浏览器以attachment(下载方式)打开图片
headers.setContentDispositionFormData("attachment", downloadFielName);
// application/octet-stream : 二进制流数据(最常见的文件下载)。
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
// 201 HttpStatus.CREATED
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),
headers, HttpStatus.CREATED);
}
}

单击左侧菜单”下载中心“下面的”上传文档“命令,跳转到上传文档界面。
输入需要上传的文档标题和文档概述,选择要上传的文档,单击”上传“按钮,若上传成功则跳转到文档查询界面,显示所有文档信息。
选择每一行最后的”下载“按钮,会弹出下载页面,选择下载文档保存的路径,即可以下载文档。

输入文档标题,单击”搜索“按钮可以完成模糊查询功能
选择每一行的”操作“按钮,可以进入修改页面,对选中的文档进行修改操作
选择每一行第一列的复选框,单击”删除“按钮,则可以对选中的文档进行删除操作

原文链接: 13.5.7 下载中心