码迷,mamicode.com
首页 > 编程语言 > 详细

springMVC文件上传与下载(六)

时间:2017-07-27 20:06:11      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:获取   osb   sep   ddp   apt   mlu   ace   ddl   n+1   

1..文件上传

在springmvc.xml中配置文件上传解析器

<!-- 上传图片配置实现类,id必须为这个 -->
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <!-- 上传图片的大小   B   5M  1*1024*1024*5-->
            <property name="maxUploadSize" value="5000000"/>
        </bean>

2. jsp页面修改(类似于struts2)

技术分享

3.上传处理(也可以用普通servlet的io流的方式直接处理,多文件上传类似于struts2,数组方式)

 

方法一:

@RequestMapping("updateItem")
public String updateItemById(Item item, MultipartFile pictureFile) throws Exception {
    // 图片上传
    // 设置图片名称,不能重复,可以使用uuid
    String picName = UUID.randomUUID().toString();

    // 获取文件名
    String oriName = pictureFile.getOriginalFilename();
    // 获取图片后缀
    String extName = oriName.substring(oriName.lastIndexOf("."));

    // 开始上传
    pictureFile.transferTo(new File("C:/upload/image/" + picName + extName));

    // 设置图片名到商品中
    item.setPic(picName + extName);
    // ---------------------------------------------
    // 更新商品
    this.itemService.updateItemById(item);

    return "forward:/itemEdit.action";
}

 

 

 

方法二:

// public ModelAndView updateItemById(Items items){
    @RequestMapping(value = "/updateitem.action")
    public String updateItem(QueryVo vo, MultipartFile pictureFile) throws Exception {
        // 产生32位随机数并去掉-
        String name = UUID.randomUUID().toString().replaceAll("-", "");
        // jpg 获取文件拓展名
        String ext = FilenameUtils.getExtension(pictureFile.getOriginalFilename());
        // 保存文件,用UUID产生的唯一名字保存
        pictureFile.transferTo(new File("F:\\upload\\" + name + "." + ext));
        vo.getItems().setPic(name + "." + ext);
        // 修改
        vo.getItems().setCreatetime(new Date());
        itemService.updateItemsById(vo.getItems());

        // ModelAndView mav = new ModelAndView();
        // mav.setViewName("success");
        return "redirect:/itemEdit.action?id=" + vo.getItems().getId();
    }

 

 

 

 ----------------------------------------------------------------------------------------文件下载处理(引用另一篇博客的)--------------------------------------------------------------------------------------

@RequestMapping("file")  
@Controller  
public class FileController {  
    /**  
     * 文件上传功能  
     * @param file  
     * @return  
     * @throws IOException   
     */  
    @RequestMapping(value="/upload",method=RequestMethod.POST)  
    @ResponseBody  
    public String upload(MultipartFile file,HttpServletRequest request) throws IOException{  
        String path = request.getSession().getServletContext().getRealPath("upload");  
        String fileName = file.getOriginalFilename();    
        File dir = new File(path,fileName);          
        if(!dir.exists()){  
            dir.mkdirs();  
        }  
        //MultipartFile自带的解析方法  
        file.transferTo(dir);  
        return "ok!";  
    }  
      
    /**  
     * 文件下载功能  
     * @param request  
     * @param response  
     * @throws Exception  
     */  
    @RequestMapping("/down")  
    public void down(HttpServletRequest request,HttpServletResponse response) throws Exception{  
        //模拟文件,myfile.txt为需要下载的文件  
        String fileName = request.getSession().getServletContext().getRealPath("upload")+"/myfile.txt";  
        //获取输入流  
        InputStream bis = new BufferedInputStream(new FileInputStream(new File(fileName)));  
        //假如以中文名下载的话  
        String filename = "下载文件.txt";  
        //转码,免得文件名中文乱码  
        filename = URLEncoder.encode(filename,"UTF-8");  
        //设置文件下载头  
        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();  
    }  
} 

 

springMVC文件上传与下载(六)

标签:获取   osb   sep   ddp   apt   mlu   ace   ddl   n+1   

原文地址:http://www.cnblogs.com/qlqwjy/p/7246417.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!