首页>代码>spring mvc开发实现图片动态裁剪上传,并配置多数据源示例>/spring/springmvc/src/main/java/com/it/controller/ImageController.java
package com.it.controller;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.it.utils.OperateImage;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.util.HashMap;
import java.util.Map;


/**
 * 图片上传测试类
 *
 */
@Controller
@RequestMapping("/")
public class ImageController {

    @RequestMapping(value = "/index", method = RequestMethod.GET)
    public String index(ModelMap model) throws Exception {
        return "index";
    }


    @RequestMapping(value = "/upload")
    public @ResponseBody
    Map upload(@RequestParam MultipartFile avatar_file, HttpServletRequest request) {

        java.util.Random random = new java.util.Random();// 定义随机类
        int result = random.nextInt(1);

        String path = request.getSession().getServletContext().getRealPath("upload");
        String fileName = avatar_file.getOriginalFilename();
        File targetFile = new File(path, fileName);
        if(!targetFile.exists()){
            targetFile.mkdirs();
        }
        try {
            //保存文件
            avatar_file.transferTo(targetFile);

            //裁剪图片
            JSONObject object = JSON.parseObject(request.getParameter("avatar_data"));
            OperateImage o = new OperateImage((int) Float.parseFloat(object.get("x").toString()), (int) Float.parseFloat(object.get("y").toString()), (int) Float.parseFloat(object.get("width").toString()), (int) Float.parseFloat(object.get("height").toString()));
            o.setSrcpath(path+"/"+fileName);//输入图片地址
            o.setSubpath("D:\\"+result+".jpg");//输出图片地址
            o.cut();
        } catch (Exception e) {
            e.printStackTrace();
        }

        Map map = new HashMap();
        map.put("result", true);
        /*nginx地址*/
        map.put("message", "http://localhost:3333/"+result+".jpg");
        return map;
    }
}
最近下载更多
rookie02  LV7 2020年4月28日
zywzywzyw1  LV17 2019年10月29日
po59012  LV1 2019年8月20日
LHJ123  LV30 2019年4月18日
pengboss  LV12 2019年4月2日
skipple3  LV39 2019年2月13日
keen1066  LV17 2018年12月25日
LIYUANWAI  LV10 2018年11月23日
zhouxiaoyu  LV7 2018年11月14日
haiwen  LV19 2018年11月8日
最近浏览更多
softandroad 2022年11月8日
暂无贡献等级
zhy1989wz  LV6 2022年3月15日
444105047  LV6 2021年12月3日
18728748707  LV13 2021年10月12日
dududufeidad  LV9 2021年10月11日
upupup  LV5 2021年6月11日
13427720820  LV8 2021年5月4日
羞羞小子  LV13 2021年4月9日
ghost_M  LV7 2021年1月7日
lario001  LV2 2020年12月1日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友