package com.chao.controller;
import com.chao.utils.PathUtil;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartRequest;
@Controller
@RequestMapping({"file"})public classUploadDownController {
@RequestMappingpublicString toIndex(Model model) throws Exception {
String path=PathUtil.static_root;
File file= newFile(path);
List fileList= newArrayList();if (file != null) {if(file.isDirectory()) {
File[] fileArray=file.listFiles();if ((fileArray != null) && (fileArray.length > 0))for(File f : fileArray)
fileList.add(f);
}else{
System.out.println("目录不存在!");
}
}
model.addAttribute("fileList", fileList);
model.addAttribute("path", path);return "index";
}
@RequestMapping(value= { "upload" }, method ={ org.springframework.web.bind.annotation.RequestMethod.POST })
@ResponseBodypublic voidupload(HttpServletRequest request, HttpServletResponse response) throws Exception {
MultipartRequest multipartRequest=(MultipartRequest) request;
MultipartFile file= multipartRequest.getFile("file");if ((file == null) ||(file.isEmpty())) {
response.setCharacterEncoding("GB2312");
PrintWriterout =response.getWriter();out.print("");out.flush();out.close();
}else{
String fileName=file.getOriginalFilename();
String path=PathUtil.static_root;
File dir= newFile(path, fileName);if (!dir.getParentFile().exists()) {
dir.getParentFile().mkdirs();
dir.createNewFile();
}else{
dir.createNewFile();
}
file.transferTo(dir);
response.sendRedirect("/file");
}
}
@RequestMapping({"down"})public voiddown(String filename, HttpServletRequest request, HttpServletResponse response) throws Exception {
String path=PathUtil.static_root;
String downFileName= new String(filename.getBytes("ISO8859-1"), "utf-8");
String fileName= path + File.separator +downFileName;
InputStream bis= new BufferedInputStream(new FileInputStream(newFile(fileName)));
response.addHeader("Content-Disposition", "attachment;filename=" +filename);
response.setContentType("multipart/form-data");
BufferedOutputStreamout = newBufferedOutputStream(response.getOutputStream());int len = 0;while ((len = bis.read()) != -1) {out.write(len);out.flush();
}out.close();
}
@RequestMapping({"deleteFile"})publicString deleteFile(String filename) throws Exception {
String path=PathUtil.static_root;
filename= new String(filename.getBytes("ISO8859-1"), "utf-8");
String fileName= path + File.separator +filename;
File file= newFile(fileName);if ((file.exists()) &&(file.isFile()))
file.delete();else{return "error";
}return "redirect:/file";
}
}