文件上传测试完成

This commit is contained in:
2018-06-23 13:23:35 +08:00
parent fc7cbcaab4
commit 080bf57378
8 changed files with 227 additions and 7 deletions

View File

@@ -1,7 +1,9 @@
package top.fjy8018.fileupload.controller;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@@ -23,6 +25,7 @@ import java.util.Map;
* @author F嘉阳
* @date 2018-06-23 09:16
*/
@Slf4j
@Controller
@RequestMapping("/upload")
public class UploadController {
@@ -33,25 +36,30 @@ public class UploadController {
@Autowired
private ServerPropertiesConfig serverPropertiesConfig;
@GetMapping("")
public String toUploadPage(){
return "home/upload.html";
}
@PostMapping("/add")
public String moreUpload(HttpServletRequest request,
@RequestParam(value = "fileName") String fileName) {
public void moreUpload(HttpServletRequest request) {
MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> files = multipartHttpServletRequest.getFileMap();
User user = (User)request.getSession().getAttribute(GlobalConstant.USER_SESSION_KEY);
//User user = (User)request.getSession().getAttribute(GlobalConstant.USER_SESSION_KEY);
EsFileInfo fileInfo = new EsFileInfo();
for (MultipartFile file : files.values()) {
String pathname = serverPropertiesConfig.getFilePath()+fileName;
String pathname = serverPropertiesConfig.getFilePath()+file.getOriginalFilename();
File targetFile = new File(pathname);
fileInfo.setFileName(fileName);
fileInfo.setFileName(file.getOriginalFilename());
fileInfo.setFilePath(pathname);
fileInfo.setFileSize(FormatFileSizeUtil.GetFileSize(file.getSize()));
fileInfo.setUserId(user.getId());
fileInfo.setUserId("1529723171835369380");
log.info("【文件上传信息】fileinfo{},PostFile:{}",fileInfo.toString(),file.getOriginalFilename());
// 写入ES
fileService.saveFile(fileInfo);
@@ -61,6 +69,5 @@ public class UploadController {
e.printStackTrace();
}
}
return null;
}
}

View File

@@ -0,0 +1,27 @@
var Main = {
data() {
return {
fileList: [
{
name: 'food.jpeg',
url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'
}, {
name: 'food2.jpeg',
url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'
}]
};
},
methods: {
submitUpload() {
this.$refs.upload.submit();
},
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePreview(file) {
console.log(file);
}
}
}
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')

View File

@@ -0,0 +1,6 @@
<!DOCTYPE html>
<html lang="en">
<body>
</body>
</html>

View File

@@ -0,0 +1,20 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head th:fragment="header(title)">
<meta name="renderer" content="webkit">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title th:text="${title}"></title>
<link rel="stylesheet" href="https://unpkg.com/element-ui@2.3.3/lib/theme-chalk/index.css">
<link th:href="@{/css/style.css}" rel="stylesheet">
</head>
<body>
<div id="body_js">
<!-- 先引入 Vue -->
<script src="https://unpkg.com/vue@2.5.15/dist/vue.js"></script>
<!-- 引入组件库 -->
<script src="https://unpkg.com/element-ui@2.3.3/lib/index.js"></script>
<script src="https://unpkg.com/axios@0.18.0/dist/axios.min.js"></script>
</div>
</body>
</html>

View File

@@ -0,0 +1,9 @@
<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-4.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<body>
<div th:fragment="copyright">
© 2016 xxx
</div>
</body>
</html>

View File

@@ -0,0 +1,122 @@
<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-4.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<body>
<el-header th:fragment="header">
<el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect">
<el-menu-item index="1" @click="ClickToJump('home')">首页</el-menu-item>
<el-menu-item index="2" @click="ClickToJump('home/user')">个人中心</el-menu-item>
<el-menu-item index="3" @click="ClickToJump('home/about')">关于</el-menu-item>
<el-menu-item index="4" @click="ClickToJump('home/feedback')">意见反馈</el-menu-item>
<el-menu-item index="5" @click="ClickToJump('logout')">登出</el-menu-item>
</el-menu>
</el-header>
<el-aside width="200px" th:fragment="asider">
<el-row class="tac">
<el-col :span="24">
<h5>默认颜色</h5>
<el-menu default-active="2" class="el-menu-vertical-demo" @open="handleOpen" @close="handleClose">
<el-submenu index="1">
<template slot="title">
<i class="el-icon-location"></i>
<span>导航一</span>
</template>
<el-menu-item-group>
<template slot="title">分组一</template>
<el-menu-item index="1-1">选项1</el-menu-item>
<el-menu-item index="1-2">选项2</el-menu-item>
</el-menu-item-group>
<el-menu-item-group title="分组2">
<el-menu-item index="1-3">选项3</el-menu-item>
</el-menu-item-group>
<el-submenu index="1-4">
<template slot="title">选项4</template>
<el-menu-item index="1-4-1">选项1</el-menu-item>
</el-submenu>
</el-submenu>
<el-menu-item index="2">
<i class="el-icon-menu"></i>
<span slot="title">导航二</span>
</el-menu-item>
<el-menu-item index="3">
<i class="el-icon-setting"></i>
<span slot="title">导航三</span>
</el-menu-item>
</el-menu>
</el-col>
</el-row>
</el-aside>
<el-card class="box-card" th:fragment="userbox">
<div slot="header" class="clearfix">
<!--下面两行报错正常-->
<span th:text="${#httpServletRequest.getSession().getAttribute('USER_SESSION').colname}">用户名</span><br>
<span th:text="${#httpServletRequest.getSession().getAttribute('USER_SESSION').colstudentno}"></span>
</div>
<div class="item">
<el-button type="text" @click="ClickToJump('home')">首页</el-button>
<br>
<el-button type="text" @click="ClickToJump('home/user')">个人中心</el-button>
<br>
<el-button type="text" @click="ClickToJump('home/about')">关于</el-button>
<br>
<el-button type="text" @click="ClickToJump('home/feedback')">意见反馈</el-button>
</div>
</el-card>
<el-card class="box-card" th:fragment="adminbox">
<div slot="header" class="clearfix">
<span>管理员</span><br>
<span>管理员号</span>
</div>
<div class="item">
<el-button type="text" @click="ClickToJump('home/admin')">后台主页</el-button>
<br>
<el-button type="text" @click="ClickToJump('home/admin/managecourse')">课程管理</el-button>
<br>
<el-button type="text" @click="ClickToJump('home/admin/homework')">作业管理</el-button>
<br>
<el-button type="text" @click="ClickToJump('home/admin/manageuser')">用户管理</el-button>
</div>
</el-card>
<el-card class="box-card hidden-xs-only" th:fragment="timelimit">
<div slot="header" class="clearfix">
<span>作业提交倒计时</span>
<!--超时后仍为正数-->
<!--<span style="color: red"> 功能未完成</span>-->
</div>
<div class="text item">
<el-table :data="tableHomeworkData" height="300" style="width: 100%"
:default-sort="{prop: 'time', order: 'descending'}">
<el-table-column prop="coursename" label="科目" sortable>
</el-table-column>
<el-table-column prop="workname" label="作业" sortable>
</el-table-column>
<el-table-column prop="time" label="倒计时" sortable>
<template slot-scope="scope">
{{limitTime(scope.row)}}
</template>
</el-table-column>
</el-table>
</div>
</el-card>
<el-card class="box-card hidden-xs-only" th:fragment="notice">
<div slot="header" class="clearfix">
<span>公告</span>
</div>
<div v-for="notice in NoticeList" class="text item">
{{notice.noticeContent + notice.issueTime}}
</div>
</el-card>
<el-footer th:fragment="footer">
<div class="footer">
Copyright © 2018 作业提交系统 All Rights Reserved|
<a href="http://www.miitbeian.gov.cn/">粤ICP备18026008号</a> 粤ICP备18026008号-1
</div>
</el-footer>
</body>
</html>

View File

@@ -0,0 +1,19 @@
<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-4.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<head th:include="dist/thymeleaf/common_head :: header('上传')">
</head>
<body>
<div th:insert="~{dist/thymeleaf/common_head :: #body_js}"></div>
<div id="app">
<el-upload class="upload-demo" ref="upload" action="/fileupload/upload/add"
:on-preview="handlePreview" :on-remove="handleRemove" :file-list="fileList" :auto-upload="false">
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
<el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件且不超过100Mb</div>
</el-upload>
</div>
<script th:src="@{/js/upload.js}+'?v=0.1'"></script>
</body>
</html>

View File

@@ -0,0 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上传成功</title>
</head>
<body>
</body>
</html>