package com.zheng.oss.web.controller; import com.alibaba.fastjson.JSONObject; import com.zheng.oss.common.constant.OssConstant; import com.zheng.oss.common.constant.OssResult; import com.zheng.oss.common.constant.OssResultConstant; import com.zheng.oss.web.service.AliyunOssService; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.converter.json.MappingJacksonValue; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; /** * Created by ZhangShuzheng on 2017/5/15. */ @Controller @RequestMapping("/aliyun/oss") public class AliyunOssController { private static Logger _log = LoggerFactory.getLogger(AliyunOssController.class); @Autowired private AliyunOssService aliyunOssService; /** * 签名生成 * @param callback 跨域请求 * @return */ @GetMapping("/policy") @ResponseBody //@CrossOrigin(origins = "*", methods = RequestMethod.GET) // 该注解不支持JDK1.7 public Object policy(@RequestParam(required = false) String callback) { JSONObject result = aliyunOssService.policy(); if (StringUtils.isBlank(callback)) { return result; } MappingJacksonValue jsonp = new MappingJacksonValue(result); jsonp.setJsonpFunction(callback); return jsonp; } /** * 上传成功回调方法 * @param request * @return */ @PostMapping("callback") @ResponseBody public Object callback(HttpServletRequest request) { JSONObject data = new JSONObject(); String filename = request.getParameter("filename"); filename = "http://".concat(OssConstant.ALIYUN_OSS_BUCKET_NAME).concat(".").concat(OssConstant.ALIYUN_OSS_ENDPOINT).concat("/").concat(filename); data.put("filename", filename); data.put("size", request.getParameter("size")); data.put("mimeType", request.getParameter("mimeType")); data.put("width", request.getParameter("width")); data.put("height", request.getParameter("height")); return new OssResult(OssResultConstant.SUCCESS, data); } }