部署文档上传下载功能开发

parent 6b26411b
...@@ -55,6 +55,11 @@ ...@@ -55,6 +55,11 @@
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope> <scope>runtime</scope>
</dependency> </dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--引入druid--> <!--引入druid-->
<!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency> <dependency>
......
package com.cc.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.log4j.Log4j;
@Data
@Log4j
@NoArgsConstructor
@AllArgsConstructor
public class Document {
private int id;
private String url;
private String lujing;
private String name;
}
...@@ -44,6 +44,8 @@ public class ServicesRest { ...@@ -44,6 +44,8 @@ public class ServicesRest {
// 数据库监控url // 数据库监控url
private String SqlCapability; private String SqlCapability;
//访问部署文档路径
private String ReadDocumentPath;
......
...@@ -20,5 +20,6 @@ public class MyMvcConfig extends WebMvcConfigurerAdapter { ...@@ -20,5 +20,6 @@ public class MyMvcConfig extends WebMvcConfigurerAdapter {
registry.addViewController("/serviceform").setViewName("servicefrom"); registry.addViewController("/serviceform").setViewName("servicefrom");
registry.addViewController("/serviceupdate").setViewName("serviceupdate"); registry.addViewController("/serviceupdate").setViewName("serviceupdate");
registry.addViewController("/serviceCapability").setViewName("serviceCapability"); registry.addViewController("/serviceCapability").setViewName("serviceCapability");
registry.addViewController("/upload").setViewName("upload");
} }
} }
package com.cc.controller;
import com.cc.bean.Document;
import com.cc.bean.ServicesRest;
import com.cc.service.ServiceService;
import com.cc.service.serviceimpl.DocumentService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.List;
/**
* @Description
* @Author sgl
* @Date 2018-05-15 14:04
*/
@Controller
public class UploadController {
private static final Logger LOGGER = LoggerFactory.getLogger(UploadController.class);
@Autowired
DocumentService documentService;
@Autowired
private ServicesRest servicesRest;
@Value("${DocumentPath}")
private String documentPath;
@GetMapping("/upload")
public String upload(Model model) {
List<Document> document=documentService.selectShipin();
System.out.print("查询到的文件数量=="+document.size()+"\n");
model.addAttribute("documents", document);
return "upload";
}
@PostMapping("/upload")
//@ResponseBody
public String upload(@RequestParam("file") MultipartFile file, Model model,HttpServletRequest request) {
if (file.isEmpty()) {
model.addAttribute("msg","上传失败,请选择文件");
return "upload";
}
String fileName = file.getOriginalFilename();
String filePath = documentPath;
//String filePath = request.getSession().getServletContext().getRealPath("public/");
File dest = new File(filePath + fileName);
//判断文件是否已经存在
if (dest.exists()) {
model.addAttribute("msg",fileName+"文件已存在");
return "upload";
}
try {
file.transferTo(dest);
LOGGER.info("上传成功");
model.addAttribute("msg",fileName+"上传成功");
String path=filePath + fileName;
System.out.print("保存文件路径"+path+"\n");
String url=servicesRest.getReadDocumentPath()+fileName;
int num= documentService.insertUrl(fileName,path,url);
System.out.print("插入结果"+num+"\n");
//System.out.print("访问完整url===="+url+"\n");
} catch (IOException e) {
LOGGER.error(e.toString(), e);
model.addAttribute("msg",fileName+"上传失败");
}
List<Document> document=documentService.selectShipin();
System.out.print("查询到的文件数量=="+document.size()+"\n");
model.addAttribute("documents", document);
return "upload";
}
@GetMapping (value = "/download")
public void Download(HttpServletResponse res,String fileName) {
//String fileName = "111.jpg";
res.setHeader("content-type", "application/octet-stream");
res.setContentType("application/octet-stream");
res.setHeader("Content-Disposition", "attachment;filename=" + fileName);
byte[] buff = new byte[1024];
BufferedInputStream bis = null;
OutputStream os = null;
try {
os = res.getOutputStream();
bis = new BufferedInputStream(new FileInputStream(new File(documentPath + fileName)));
int i = bis.read(buff);
while (i != -1) {
os.write(buff, 0, buff.length);
os.flush();
i = bis.read(buff);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
System.out.println("success");
}
@GetMapping("/multiUpload")
public String multiUpload() {
return "multiUpload";
}
@PostMapping("/multiUpload")
@ResponseBody
public String multiUpload(HttpServletRequest request) {
List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("file");
String filePath = "/Users/itinypocket/workspace/temp/";
for (int i = 0; i < files.size(); i++) {
MultipartFile file = files.get(i);
if (file.isEmpty()) {
return "上传第" + (i++) + "个文件失败";
}
String fileName = file.getOriginalFilename();
File dest = new File(filePath + fileName);
try {
file.transferTo(dest);
LOGGER.info("第" + (i + 1) + "个文件上传成功");
} catch (IOException e) {
LOGGER.error(e.toString(), e);
return "上传第" + (i++) + "个文件失败";
}
}
return "上传成功";
}
}
package com.cc.mapper;
import com.cc.bean.Document;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Component;
import java.util.List;
@Mapper
@Component
public interface DocumentDao {
//插入
@Insert({"insert into document (name,lujing,url) values (#{name},#{lujing},#{url})"})
public int insertUrl(@Param("name") String name, @Param("lujing") String lujing, @Param("url") String url);
//查询
@Select("select * from document")
public List<Document> selectShipin();
}
package com.cc.service.serviceimpl;
import com.cc.bean.Document;
import com.cc.mapper.DocumentDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@Component
public class DocumentService {
@Autowired
private DocumentDao documentDao;
//插入
public int insertUrl(String name,String lujing,String url){
System.out.print("开始插入=name=="+name+"\n");
System.out.print("开始插入=lujing=="+lujing+"\n");
System.out.print("开始插入=url=="+url+"\n");
int jieguo=documentDao.insertUrl(name,lujing,url);
System.out.print("插入结果==="+jieguo+"\n");
return jieguo;
}
//查询
public List<Document> selectShipin(){
List<Document> shipins=documentDao.selectShipin();
return shipins;
}
}
# \u4E0A\u4F20\u6587\u4EF6\u603B\u7684\u6700\u5927\u503C
spring.servlet.multipart.max-request-size=10MB
# \u5355\u4E2A\u6587\u4EF6\u7684\u6700\u5927\u503C
spring.servlet.multipart.max-file-size=10MB
# \u5B58\u50A8\u90E8\u7F72\u6587\u6863\u8DEF\u5F84
DocumentPath: D://word//
spring.mvc.view.prefix=/WEB-INF/view/ spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.jsp spring.mvc.view.suffix=.jsp
......
...@@ -49,6 +49,8 @@ service-rest: ...@@ -49,6 +49,8 @@ service-rest:
Capability: "http://192.168.193.134:3001/" Capability: "http://192.168.193.134:3001/"
# 数据库监控地址 # 数据库监控地址
SqlCapability: "http://192.168.193.134:3001/" SqlCapability: "http://192.168.193.134:3001/"
# 访问部署文档路径(暂时不用)
ReadDocumentPath: "http://localhost:9022/document/"
ThreadPool: ThreadPool:
#核心线程数 #核心线程数
corePoolSize: 20 corePoolSize: 20
......
...@@ -129,7 +129,7 @@ ...@@ -129,7 +129,7 @@
</a> </a>
<ul class="sub-menu" style="display:none"> <ul class="sub-menu" style="display:none">
<li> <li>
<a href="./banner-list.html"> <a href="/upload">
<i class="iconfont">&#xe6a7;</i> <i class="iconfont">&#xe6a7;</i>
部署文档 部署文档
</a> </a>
......
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>layui</title>
<meta name="renderer" content="webkit"> <meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
......
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
</head>
<body>
<form method="post" action="/multiUpload" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="file" name="file"><br>
<input type="file" name="file"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>layui</title>
<meta name="renderer" content="webkit"> <meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
......
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>layui</title>
<meta name="renderer" content="webkit"> <meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
......
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>layui</title>
<meta name="renderer" content="webkit"> <meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
......
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>layui</title>
<meta name="renderer" content="webkit"> <meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
......
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<script type="text/javascript" src="/jquery/jquery.min.js"></script>
<!-- 引入公共js-->
<script type="text/javascript" src="/js/common.js"></script>
<style>
.img-icon{width:120px;}
.list-img li{float: left;text-align: center;width:15%;cursor: pointer;}
.list-img li a:hover{color:#fff;}
</style>
<!-- 引入公共页面-->
<jsp:include page="../common/index.jsp"></jsp:include>
</head>
<body>
<div class="page-content">
<div class="content" style="min-height: inherit;">
<form method="post" action="/upload" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" class="layui-btn" value="提交" style="margin: 10px 0;">
<a style="color: red;line-height: 38px;">${msg}</a>
</form>
</div>
<div>
<ul class="list-img">
<c:forEach items="${documents}" var="document">
<li>
<p><img src="images/img.png" class="img-icon"/></p>
<p>文件名:<span>${document.name}</span></p>
<a href="/download?fileName=${document.name}">点击下载</a>
</li>
</c:forEach>
</ul>
</div>
</div>
<script>
function xz(obj) {
var fileName=$(obj).html();
$.ajax({
type: "POST",
url: "/download",
data: {fileName:fileName},
dataType: "json",
success: function(data){
debugger;
alert(data);
}
});
}
</script>
</body>
</html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment