废话不多说直接上代码
前台
element 自身就带了 导入的组件
<el-button size="small" v-if="isAuth('sys:holiday:holiday:exp')">批量导入</el-button>
<el-upload
class="upload-btn"
:action="uploadUrl"
accept=".xls, .xlsx"
:on-success="handleAvatarSuccess"
:on-progress="uploadProgress"
:on-error="handleUploadError"
:show-file-list="false"
>
这个组件 的action事件 然后里面有url。
这里我们来注意一下分一下excel 导入的具体实现。就是上传excel 表,然后指定路径上,上传成功后,读取excel 表,然后对数据进行处理 实现。
所以1发送url到文件上传地方
export default {
mixins: [requestTime],
data () {
return {
year: '',
uploadUrl: this.$http.adornUrl(
`/file/normalUpload?token=${
this.$cookie.get('token')}`
),
这里因为项目里多次会用到,就封装起来
@RequestMapping(path = "/normalUpload")
@ResponseBody
public R normalUpload(HttpServletRequest request, HttpServletResponse response) throws IOException {
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload sfu = new ServletFileUpload(factory);
sfu.setHeaderEncoding