第三方插件上传文件步骤

我的上传文件引用第三方插件七牛云以下有详情的步骤:

1.注册,登录,去七牛云官网注册

2.新建存储空间:

3.QiniuServiceImpl方法上传:

package com.cn.wxj.service.impl;

import java.io.IOException;
import java.util.UUID;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import com.alibaba.fastjson.JSONObject;
import com.cn.wxj.utils.FileUtil;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;

@Service
public class QiniuServiceImpl {

     private static final Logger logger = LoggerFactory.getLogger(QiniuServiceImpl.class);

        // 设置好账号的ACCESS_KEY和SECRET_KEY
        String ACCESS_KEY = "-1XQb5WXYmQ7p_CTjoaim853ai7H5QeAB0gFl5B7";
        String SECRET_KEY = "cRZJpRIo0dBm_o_UDocCjenQLGRdsjHN1s7_tPBB";
        // 要上传的空间
        String bucketname = "jie";

        // 密钥配置
        Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
        // 构造一个带指定Zone对象的配置类,不同的七云牛存储区域调用不同的zone
        Configuration cfg = new Configuration(Zone.zone0());
        // ...其他参数参考类注释
        UploadManager uploadManager = new UploadManager(cfg);

        // 测试域名,只有30天有效期
        private static String QINIU_IMAGE_DOMAIN = "http://pqnpifcvp.bkt.clouddn.com/";

        // 简单上传,使用默认策略,只需要设置上传的空间名就可以了
    
        public String getUpToken() {
            return auth.uploadToken(bucketname);
        }
     
        public String saveImage(MultipartFile file) throws IOException {
            try {
                int dotPos = file.getOriginalFilename().lastIndexOf(".");
                if (dotPos < 0) {
                    return null;
                }
                String fileExt = file.getOriginalFilename().substring(dotPos + 1).toLowerCase();
                // 判断是否是合法的文件后缀
                if (!FileUtil.isFileAllowed(fileExt)) {
                    return null;
                }

                String fileName = UUID.randomUUID().toString().replaceAll("-", "") + "." + fileExt;
                // 调用put方法上传
                Response res = uploadManager.put(file.getBytes(), fileName, getUpToken());
                // 打印返回的信息
                if (res.isOK() && res.isJson()) {
                    // 返回这张存储照片的地址
                    return QINIU_IMAGE_DOMAIN + JSONObject.parseObject(res.bodyString()).get("key");
                } else {
                    logger.error("七牛异常:" + res.bodyString());
                    return null;
                }
            } catch (QiniuException e) {
                // 请求失败时打印的异常的信息
                logger.error("七牛异常:" + e.getMessage());
                return null;
            }
        }

}

4:工具类:FileUtil类

package com.cn.wxj.utils;

public class FileUtil {
       // 图片允许的后缀扩展名
    public static String[] IMAGE_FILE_EXTD = new String[] { "png", "bmp", "jpg", "jpeg","pdf" };

    public static boolean isFileAllowed(String fileName) {
        for (String ext : IMAGE_FILE_EXTD) {
            if (ext.equals(fileName)) {
                return true;
            }
        }
        return false;
    }
}
5.controller类

package com.cn.wxj.controller;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
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 com.cn.wxj.entity.Img;
import com.cn.wxj.service.ImgService;


import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.List;

@Controller
@RequestMapping("xx")
public class TuController {

    @Autowired
    private QiniuServiceImpl qiniuService;
    
    @Autowired
    private ImgService mm;

    @RequestMapping(value = "/testUpload", method = RequestMethod.POST)

    public String uploadImage(@RequestParam("file") MultipartFile file, HttpServletRequest request,Img i,Model mv) {

        if(file.isEmpty()) {
            return "error";
        }
        try {
        
            String fileUrl=qiniuService.saveImage(file);
          
            i.setImg(fileUrl);
            int a=mm.add(i);
            if(a>0) {
                List<Img> li=mm.find(null);
                   mv.addAttribute("li",li);
                    return "img";
                
            }
           } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

6.Springmvc配置:图片大小

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
    <property name="maxUploadSize" value="1048576" />  
</bean>

7.pom引用家包:

<!--七牛云-->
       <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.6.4</version>
        </dependency>
        <!-- uploadify文件上传组件 -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>
 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值