package com.bdqn.ban.controller; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URLEncoder; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.FilenameUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpRequest; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.commons.CommonsMultipartFile; import com.bdqn.ban.entity.Book; import com.bdqn.ban.entity.Picture; import com.bdqn.ban.service.PictureService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import util.PopUtil; @Controller @RequestMapping("file") public class filecontroller { @Autowired private PictureService ps; @RequestMapping("/fileupload.do") /* * 通过流的方式上传文件 * @RequestParam("file") 将name=file控件得到的文件封装成CommonsMultipartFile 对象 */ public String fileUpload(@RequestParam("file") CommonsMultipartFile file ) throws IOException { //用来检测程序运行时间 long startTime=System.currentTimeMillis(); String filename = file.getOriginalFilename(); System.out.println("fileName:"+file.getOriginalFilename()); Map<String,String> map = new HashMap<>(); try { //获取输出流 OutputStream os=new FileOutputStream(PopUtil.getPop("path")+"/image/"+filename); //获取输入流 CommonsMultipartFile 中可以直接得到文件的流 InputStream is=file.getInputStream(); int temp; //一个一个字节的读取并写入 while((temp=is.read())!=(-1)) { os.write(temp); } os.flush(); os.close(); is.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } map.put("pic", "/image/"+filename); long endTime=System.currentTimeMillis(); System.out.println("方法一的运行时间:"+String.valueOf(endTime-startTime)+"ms"); int p=ps.insert(map); if(p!=0) { return "sc"; } return "error"; } @RequestMapping("delete") public void bookdelete(Integer id,HttpServletResponse response) { int a=ps.deleteByPrimaryKey(id); System.out.println(a); try { if(a!=0) { System.out.println("删除成功"); response.getWriter().write("success"); } else { System.out.println("失败"); response.getWriter().write("failed"); } } catch (IOException e) { e.printStackTrace(); } } @RequestMapping("upload.do") public String booklist(@RequestParam(required=true,defaultValue="1")Integer page,HttpServletRequest request,Model model) { PageHelper.startPage(page, 4); List<Picture> pictureList=ps.selectByList(); PageInfo<Picture> p=new PageInfo<Picture>(pictureList); model.addAttribute("page", p); model.addAttribute("pictureList", pictureList); return "upload"; } @RequestMapping("/down") public void down(Integer id,Model m,HttpServletRequest request,HttpServletResponse response)throws Exception { Picture a=ps.selectByPrimaryKey(id); m.addAttribute("a", a.getPic()); String fileName = PopUtil.getPop("path")+a.getPic(); //InputSource是输入源 InputStream bis = new BufferedInputStream(new FileInputStream (new File(fileName))); String[] split = fileName.split("/"); String filename = split[3]; //转码,中文乱码 filename=URLEncoder.encode(filename,"UTF-8"); //filename = new String(filename .getBytes(), "ISO-8859-1"); //设置文件下载头 response.addHeader("Content-Disposition", "attachment;filename="+ filename); //1.设置文件ContentType类型,自动判断下载文件类型 response.setContentType("multipart/form-data"); BufferedOutputStream out = new BufferedOutputStream (response.getOutputStream()); int len = 0; while((len = bis.read()) != -1){ out.write(len); out.flush(); } out.close(); } /*public static void main(String[] args) { String agent=request.getHeader("User-Agent").toLowerCase(); System.out.println(agent); System.out.println("浏览器版本:"+getBrowserName(agent)); } public String getBrowserName(String agent) { if(agent.indexOf("msie 7")>0){ return "ie7"; } else if(agent.indexOf("msie 8")>0){ return "ie8"; } else if(agent.indexOf("msie 9")>0){ return "ie9"; } else if(agent.indexOf("msie 10")>0){ return "ie10"; } else if(agent.indexOf("msie")>0){ return "ie"; } else if(agent.indexOf("opera")>0){ return "opera"; } else if(agent.indexOf("opera")>0){ return "opera"; } else if(agent.indexOf("firefox")>0){ return "firefox"; } else if(agent.indexOf("webkit")>0){ return "webkit"; } else if(agent.indexOf("gecko")>0 && agent.indexOf("rv:11")>0){ return "ie11"; } else{ return "Others"; } }*/ }
最近下载更多
血羽如风 LV6
6月17日
ice_candy LV1
2023年6月15日
liangge2115 LV27
2023年6月7日
zhaoxiang123456 LV4
2023年2月12日
litchi955 LV11
2022年12月11日
谢谢谢谢谢谢你 LV6
2022年7月19日
2039995605 LV9
2022年6月4日
lrssuper LV4
2022年6月4日
hdell65 LV6
2022年5月18日
燕云十六州 LV3
2022年5月9日
最近浏览更多
shunlun8855 LV1
10月28日
angaochong LV5
10月10日
krispeng LV13
8月25日
dnuygwqudyg
6月28日
暂无贡献等级
15342201772 LV9
6月26日
qiwwwww LV2
6月20日
微信网友_7041036943331328 LV3
6月20日
ljpjbau
6月20日
暂无贡献等级
血羽如风 LV6
6月17日
2636804923 LV6
6月13日