SSM后台框架下配合实现小程序图片上传至阿里云OOS

2 篇文章 0 订阅

控制器接收小程序上传的图片

@RequestMapping(value = "/picture3.html", method = RequestMethod.POST)
    @ResponseBody
    public JSONArray uploadPicture(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        // 获取文件需要上传到的路径
        String vtb_name = request.getParameter("vtb_name");
        String vtb_photo = request.getParameter("vtb_photo");
        String vtb_startdate = request.getParameter("vtb_startdate");
        String vtb_buydate = request.getParameter("vtb_buydate");
        String vtb_enddate = request.getParameter("vtb_enddate");
        String vtb_state = request.getParameter("vtb_state");
        Integer vtb_count = Integer.parseInt(request.getParameter("vtb_count"));
        String vtb_content = request.getParameter("vtb_content");
        String filename = GetTime();
        MultipartHttpServletRequest req = (MultipartHttpServletRequest) request;
        MultipartFile multipartFile = req.getFile("file");

        String realPath = "C:\\Users\\Administrator\\Desktop\\";
        try {
            File dir = new File(realPath);
            if (!dir.exists()) {
                dir.mkdir();
            }
            File file = new File(realPath, filename + ".jpg");
            multipartFile.transferTo(file);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        }

        OOSManager(filename);
        vtb_photo = "https://baigekeji.oss-cn-beijing.aliyuncs.com/xiaofang/"
                + filename + ".jpg";
        int count = vegetablesServices.AddVegetables(vtb_name, vtb_photo,
                vtb_startdate, vtb_buydate, vtb_enddate, vtb_state, vtb_count,
                vtb_content);
        if (count > 0) {
            filedel("C:\\Users\\Administrator\\Desktop\\" + filename + ".jpg");
            Map<String, String> json = new HashMap<String, String>();
            json.put("name", "成功");
            JSONArray jianyiJSON = new JSONArray();
            JSONArray JSONjianyi = JSONArray.fromObject(json);
            jianyiJSON.add(JSONjianyi);
            return jianyiJSON;

        } else {
            Map<String, String> json = new HashMap<String, String>();
            json.put("name", "失败");
            JSONArray jianyiJSON = new JSONArray();
            JSONArray JSONjianyi = JSONArray.fromObject(json);
            jianyiJSON.add(JSONjianyi);
            return jianyiJSON;
        }

    }

调用的辅助方法

/**
     * 阿里云OOS
     * @param invitation
     */
    public void OOSManager(String invitation) {
        // 开始上传阿里云
        String endpoint = "http://oss-cn-beijing.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录
        // https://ram.console.aliyun.com 创建RAM账号
        String accessKeyId = "************";
        String accessKeySecret = "****************";
        // 创建OSSClient实例
        OSSClient ossClient = new OSSClient(endpoint, accessKeyId,
                accessKeySecret);
        // 上传文件
        ossClient.putObject("baigekeji", "xiaofang/" + invitation + ".jpg",
                new File("C:/Users/Administrator/Desktop/" + invitation
                        + ".jpg"));
        // 关闭client
        ossClient.shutdown();
    }

图片随机名称的辅助方法

/**
     * 时间
     * @return
     */
    public String GetTime() {
        Calendar cal = Calendar.getInstance();// 使用日历类
        String year = String.valueOf(cal.get(Calendar.YEAR));// 得到年
        String month = String.valueOf(cal.get(Calendar.MONTH) + 1);// 得到月,因为从0开始的,所以要加1
        String day = String.valueOf(cal.get(Calendar.DAY_OF_MONTH));// 得到天
        String one = String.valueOf(cal.get(Calendar.HOUR));// 得到天
        String two = String.valueOf(cal.get(Calendar.MINUTE));// 得到天
        String three = String.valueOf(cal.get(Calendar.SECOND));// 得到天
        
        if (Integer.parseInt(month) < 10) {
            month = "0" + month;
        } else if (Integer.parseInt(day) < 10) {
            day = "0" + day;
        }
        return year + month + day + one + two + three;
    }

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值