/**
* 文件上传及修改
* @param mFile
* @param files
* @param request
* @param response
* @return
*/
@RequestMapping("import")
@ResponseBody
public Object importFile(@RequestParam(value = "file", required=false) MultipartFile mFile,Files files,
HttpServletRequest request, HttpServletResponse response) {
String fileName = mFile.getOriginalFilename();
String filePath = "/uploadFile/" + fileName;
try {
File file = new File("D:/" + filePath);
if (file.exists()) {
file.delete();
file.mkdirs();
} else {
file.mkdirs();
}
mFile.transferTo(file);
if (files.getId()!=null) {
Files files1 = filesService.selectByPrimaryKey(files.getId());
if (files1.getId() == files.getId()) {
files.setUrl(filePath);
files.setCreatetime(new Date());
filesService.updateByPrimaryKeySelective(files);
return renderStatus(true, "更新成功!", null);
}
}else {
Files f = new Files();
f.setName(files.getName());
f.setContent(files.getContent());
f.setUid(files.getUid());
f.setUrl(filePath);
f.setCreatetime(new Date());
f.setState(files.getState());
filesService.insertSelective(f);
return renderStatus(true, "新增成功!", null);
}
} catch (Exception e) {
e.printStackTrace();
}
return renderStatus(false, "新增失败!", null);
}
/**
* 下载文件
* @param fileName
* @param request
* @param response
*/
@RequestMapping("downFile")
public void downFile(String fileName,HttpServletRequest request,HttpServletResponse response) {
try {
fileName = new String(fileName.getBytes("iso8859-1"), "UTF-8");
String newFileName = fileName.substring(fileName.lastIndexOf("/")+1);
String path = “"D:/" + fileName;
// 得到要下载的文件
File file = new File(path);
// 如果文件不存在
if (!file.exists()) {
request.setAttribute("message", "您要下载的资源已被删除!!");
return;
}
// 设置响应头,控制浏览器下载该文件
response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(newFileName, "UTF-8"));
// 读取要下载的文件,保存到文件输入流
FileInputStream in = new FileInputStream(path);
// 创建输出流
OutputStream out = response.getOutputStream();
// 创建缓冲区
byte buffer[] = new byte[1024];
int len = 0;
// 循环将输入流中的内容读取到缓冲区当中
while ((len = in.read(buffer)) > 0) {
// 输出缓冲区的内容到浏览器,实现文件下载
out.write(buffer, 0, len);
}
// 关闭文件输入流
in.close();
// 关闭输出流
out.close();
} catch (Exception e) {
} /**
* 文件删除
* @param id
* @param request
* @param response
* @return
*/
@RequestMapping(value="deletefile")
@ResponseBody
public Object deletefile(String[] id,HttpServletRequest request,HttpServletResponse response){
try {
if(id != null){
int successnum = 0;
int errornum = 0;
for (int i = 0; i < id.length; i++) {
Files f = filesService.selectByPrimaryKey(Integer.parseInt(id[i]));
if(f != null){
String fileName = new String( f.getUrl().getBytes("UTF-8"), "UTF-8");
String path = “"D:/" + fileName;
File file = new File(path);
if(file.exists()){
file.delete();
}
successnum += filesService.deleteByPrimaryKey(f.getId());
}else{
errornum += 1;
}
}
return renderStatus(true, "成功删除"+successnum+"条数据!失败"+errornum+"条数据!", null);
}
} catch (Exception e) {
e.printStackTrace();
}
return renderStatus(false, "删除失败!", null);
}
}
如果此文章有帮助到您,还请施舍施舍