七牛云个人信息页面找到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>
页面效果: