Java上传文件到七牛云空间

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36476972/article/details/73263991

七牛云个人信息页面找到AK/SK 还有空间名称

entity

package com.ys.entity;

public class Img {

    private int id;
    private String dizhi;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getDizhi() {
        return dizhi;
    }
    public void setDizhi(String dizhi) {
        this.dizhi = dizhi;
    }
    @Override
    public String toString() {
        return "Img [id=" + id + ", dizhi=" + dizhi + "]";
    }

}

service

package com.ys.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ys.entity.Img;
import com.ys.mapper.ImgMapper;

@Service
public class ImgService {

    @Autowired
    private ImgMapper mapper;

    public int add(Img img){
        return mapper.add(img);

    }

    public List<Img> getAll(){
        return mapper.getAll();
    }
}

controller

package com.ys.controller;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;

import com.google.gson.Gson;
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.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import com.ys.entity.Img;
import com.ys.service.ImgService;

@Controller
public class qiniuUploadTest {

    //封装 七牛云里的  AK/SK 存储空间名称
    private static final String AccessKey="*****************";
    private static final String SecretKey="*****************";
    //外链地址
    private static final String spaceName="*****";
    //存储空间名
    private static final String bucket="****";

    @Autowired
    private ImgService service;
    //默认不指定key的情况下,以文件内容的hash值作为文件名
    String key = System.currentTimeMillis()+"";

    @RequestMapping(value="qiniuUploadTest",method=RequestMethod.POST)
    @ResponseBody
    public void qiniuUploadTest(MultipartFile file,HttpServletRequest request,HttpServletResponse response){
        //根据存放的机房 选择对象   这里自动选择
        Configuration cfg=new Configuration(Zone.autoZone());
        UploadManager uploadManager=new  UploadManager(cfg);
        //用户新建
        Auth auth=Auth.create(AccessKey, SecretKey);
        //上传的空间
        String uploadToken=auth.uploadToken(bucket);
        //开始上传
        try {
            Response qiniuresponse=uploadManager.put(file.getInputStream(), key, uploadToken,null,null);
            //解析上传成功的结果
            DefaultPutRet putRet=new Gson().fromJson(qiniuresponse.bodyString(), DefaultPutRet.class);

            String qiniuUrl=spaceName+key;
            System.out.println("dizhi:"+qiniuUrl);
            Img img =new Img();
            img.setDizhi(qiniuUrl);
            int result=service.add(img);
            if(result>0){
                System.out.println("成功!");
                this.getListInput(request);
            }else{
                System.out.println("失败!");
            }
            System.out.println(putRet.key);
            System.out.println(putRet.hash);
        } catch (QiniuException e) {
             Response r = e.response;
                System.err.println(r.toString());
                try {
                    System.err.println(r.bodyString());
                } catch (QiniuException ex2) {

                }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

        public String  getListInput(HttpServletRequest request){
        List<Img> imgList=service.getAll();
        request.setAttribute("imgList", imgList);
        return "/test/qiniuUploadFileList";
    }
}

上传JSP

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@include file="/jsp/common.jsp" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body style="margin:0 auto;">
<form action="${ctx }/qiniuUploadTest" method="post" enctype="multipart/form-data" >
    <input type="file" name="file"/><br>
    <input type="submit"  value="submit">
</form>
</body>
</html>

显示列表页面 这里上传的是 MP3

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@include file="/jsp/common.jsp" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>

</head>
<body style="margin:0 auto;">
<c:forEach items="${imgList }" var="list">
<video controls="" autoplay="" name="media">
<source src="${list.dizhi }" type="audio/mpeg">
</video>
</c:forEach>
</body>
</html>

页面效果:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_36476972/article/details/73263991