从零开始搭建自己的网站九:Ueditor图片上传到七牛云

当我们自己的服务器本身的带宽和内存不够的时候,我们需要把图片还有文件之类的放置到其他的服务器上,这样可以加快网页的加载速度,比如我用的是七牛云服务器。

1、准备工作。

需要一个七牛云账号。得到其中3个七牛云sdk需要用的参数:accessKey,secretKey,bucket。

2、代码部分

1)build.gradle 中先添加七牛云Jar包

compile 'com.qiniu:qiniu-java-sdk:[7.2.0, 7.2.99]'

2)修改 ueditor.config.js  其他不变,就修改serverUrl

serverUrl: "/manager/ueditor"

3)添加Ueditor配置文件config.json 

该文件在下载的ueditor中

修改其中 imageUrlPrefix 的值为自己的七牛云的域名

"imageUrlPrefix": "http://p047etchj.bkt.clouddn.com/", /* 图片访问路径前缀 */

4)添加ueditor方法

/**
 * ueditor 配置
 */
@RequestMapping("/ueditor")
@ResponseBody
public Object ueditor(HttpServletRequest request) throws Exception {
    String action = request.getParameter("action");
    //图片上传
    if ("uploadimage".equals(action)) {
        String contentType = request.getContentType();
        if (contentType != null && contentType.toLowerCase().startsWith("multipart/")) {
            MultipartHttpServletRequest multipartRequest = WebUtils.getNativeRequest(request, MultipartHttpServletRequest.class);
            //获取上传的文件
            Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
            if (fileMap.size() > 0) {
                //获取第一个就是
                for (String key : fileMap.keySet()) {
                    MultipartFile multipartFile = fileMap.get(key);
                    InputStream inputStream = multipartFile.getInputStream();
                    String name = multipartFile.getOriginalFilename();
                    //上传七牛云服务器
                    Map map = QiNiuUtils.updataFile(inputStream, name);
                    return map;
                }
            }
        }
        return null;
        //所有图片列表
    } else if ("config".equals(action)) {
        File file1 = ResourceUtils.getFile("classpath:config.json");
        return FileUtils.readFileToString(file1, "UTF-8");
    } else {
        //其他的可以自己去实现
        return null;
    }
}

5)QiNiuUtils七牛云工具类,实现上传图片

public class QiNiuUtils {

    public static Map updataFile(InputStream inputStream, String name) {
        Map<String, String> map = new HashMap<>();
        try {
            //构造一个带指定Zone对象的配置类
            Configuration cfg = new Configuration(Zone.zone0());
            //...其他参数参考类注释
            UploadManager uploadManager = new UploadManager(cfg);
            //...生成上传凭证,然后准备上传
            String accessKey = "自己的accessKey";
            String secretKey = "同";
            String bucket = "同";
            Auth auth = Auth.create(accessKey, secretKey);
            String upToken = auth.uploadToken(bucket);
            name = LocalDateTime.now() + "_" + name;
            Response response1 = uploadManager.put(inputStream, name, upToken, null, null);
            int statusCode = response1.statusCode;
            if (statusCode == 200) {
                map.put("state", "SUCCESS");
                map.put("title", name);
                map.put("type", name.split("\\.")[1]);
                map.put("url", name);
            } else {
                map.put("state", "FAIL");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return map;
    }
}


到这里,图片上传功能以及可以使用了。



欢迎转载,转载请注明出处 http://www.dingyinwu.com/article/49.html 

如果文章中有任何问题或者可以改进的地方,请大家多提提意见,我会非常感激。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值