使用springMVC实现上传下载图片

上传多张图片代码:

public static final String PICTUREURL = "/mnt/pic/";//图片路径
public static final String PC_PICTUREURL = "E:\\pic";//图片路径

@RequestMapping("/uploadPics.do")
    public RetObj uploadPics(@Param("file") MultipartFile[] files,@Param("trendId") Integer trendId){
        RetObj ret = new RetObj();
        try {
            if (files!=null &&files.length>0){
                List<Picture> result = new LinkedList<>();
                int i =1;
                for (MultipartFile file : files){
                    String filename = "picture_" + UUID.randomUUID() + ".jpg";//生成唯一图片路径
                    if (!file.isEmpty()) {
                        try {
                            File filepath = new File(PC_PICTUREURL);
                            if (!filepath.exists())
                                filepath.mkdirs();
                            // 文件保存路径
                            String savePath = PC_PICTUREURL + filename;
                            // 转存文件
                            file.transferTo(new File(savePath));
                            //图片路径存到数据库
                            Picture picture = new Picture();
                            picture.setTrendid(trendId);
                            picture.setPath(savePath);
                            picture.setSort(i);
                            pictureService.insert(picture);
                            i++;
                            result.add(picture);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
                ret.setObj(result);
            }else {
                ret.Fail("请选择上传的图片");
                return ret;
            }
        }catch (Exception e){
            log.error("图片上传失败"+ ExceptionUtil.getStackStr(e));
            ret.Fail("网络异常");
        }
        return ret;
    }

查看图片代码:

@RequestMapping("/getPic.do")
    public void getPic(HttpServletResponse response, @Param("url") String url){
        File file = new File(url);
        FileInputStream fis =null;
        try {
            if (!file.exists()){
                return;
            }
            fis = new FileInputStream(file);
            final byte[] buf = new byte[1024];
            while (fis.read(buf)>0){
                response.getOutputStream().write(buf);
            }
            //如果想浏览器直接打开图片,则放开下面的注释,否则就是下载
            //指定目标内容的格式
            //response.setContentType("application/jpg");
        }catch (Exception e){
            log.error("图片上传失败"+ ExceptionUtil.getStackStr(e));
        }finally {
            if (fis!=null){
                try {
                    fis.close();
                }catch (Exception e){

                }
            }
            response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
        }

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值