package com.javaniu.web; import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; import java.sql.Blob; import java.util.List; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import javax.sql.rowset.serial.SerialBlob; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.commons.CommonsMultipartFile; import org.springframework.web.servlet.ModelAndView; import com.javaniu.dao.FileDao; import com.javaniu.module.File; @Controller @RequestMapping({ "/file" }) public class FileController { Logger logger = Logger.getLogger(FileController.class); @Autowired public HttpSession session; @Autowired public FileDao fileDao; @RequestMapping(value = { "" }, method = { RequestMethod.GET }) public ModelAndView index( @RequestParam(value = "p", required = false, defaultValue = "1") int p) { ModelAndView modelAndView = new ModelAndView("file/index"); List<File> files = fileDao.loadAll(p, Integer.MAX_VALUE); modelAndView.addObject("files", files); return modelAndView; } @RequestMapping(value = { "create" }, method = { RequestMethod.GET }) public ModelAndView create(HttpServletResponse response) throws IOException { ModelAndView modelAndView = new ModelAndView("file/create"); File file = new File(); modelAndView.addObject("file", file); return modelAndView; } @RequestMapping(value = { "create" }, method = { RequestMethod.POST }) public void create(@ModelAttribute("file") File file, HttpServletResponse response) throws Exception { CommonsMultipartFile commonFile = file.getFile(); Blob image = new SerialBlob(commonFile.getBytes()); file.setFileName(commonFile.getOriginalFilename()); file.setFileSize(commonFile.getSize()); file.setImage(image); fileDao.save(file); response.sendRedirect("/file.action"); } @RequestMapping(value = "{id}/download", method = RequestMethod.GET) public void download(@PathVariable("id") Long id, @RequestHeader("User-Agent") String userAgent, HttpServletResponse response) throws Exception { File file = fileDao.findById(id); ServletOutputStream writer = response.getOutputStream(); String filename = file.getFileName(); filename = URLEncoder.encode(filename, "utf-8"); response.setHeader("Content-disposition", "attachment; filename=" + filename); Blob image = file.getImage(); InputStream input = image.getBinaryStream(); int length = (int) image.length(); int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; while ((length = input.read(buffer)) != -1) { writer.write(buffer, 0, length); writer.flush(); } input.close(); writer.close(); } }
最近下载更多
331376387 LV5
2022年11月9日
xdrlovecyh LV2
2022年6月8日
YangXiaoXia LV1
2022年3月8日
yuxinnan LV4
2022年2月23日
连夜不知终雨期 LV2
2021年12月24日
18808660036 LV1
2021年11月16日
Echo LV1
2021年10月8日
xzk0526 LV1
2021年9月26日
达布溜 LV1
2021年9月8日
241418 LV1
2021年8月12日
最近浏览更多
dapeng0011 LV15
7月18日
领通过后哄哄你 LV1
6月7日
2890892945 LV2
2023年12月31日
2515209555
2023年6月3日
暂无贡献等级
shenghuo LV1
2022年12月17日
与哲rhcy LV6
2022年12月4日
331376387 LV5
2022年11月9日
softandroad
2022年11月8日
暂无贡献等级
hello286
2022年6月18日
暂无贡献等级
sl0018 LV13
2022年6月13日