-引入弹窗页面
import fileUpload from 'src/page/cuApplyManage/fileUpload.vue';
-页面布局
<div>
<fileUpload ref="dialog" @successReload="fileUploadSuccessReload" ></fileUpload>
</div>
-上传成功后,从上传子页面传值到父页面
fileUploadSuccessReload(data){
let acctData = this.acctFormData;
let dealData = (JSON.stringify(acctData) + JSON.stringify(data)).replace(/{}/, '');
dealData = JSON.parse(dealData.replace(/}{/, ','));
this.acctFormData = dealData ;
}
-按钮打开上传页面
<el-button type="primary" icon="el-icon-upload" @click="showFileUpload">上传</el-button>
-按钮事件
showFileUpload(){
this.$refs.dialog.pvalue = true;
} 上传功能-页面
<el-upload
v-show="true"
accept=".png,.jpg,.pdf"
ref="upload"
action="uploadAction"
:before-upload="beforeUpload"
:http-request="uploadHttpRequest"
:file-list="fileList"
:auto-upload="false"
:show-file-list="true"
:multiple="false"
></el-upload>
uploadHttpRequest(param) {//执行上传动作
var this_ = this;
const formData = new FormData();
formData.append('file', param.file);
const url = this.uploadAction;
let xhr = new XMLHttpRequest();
xhr.open('post',url,true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200 || xhr.status == 0) {
this_.onSuccess(JSON.parse(xhr.responseText));
}else{
this_.onError(xhr.responseText);
}
}
}
xhr.send(formData);
},
doUplaod() {//触发uploadHttpRequest
this.$refs.upload.submit();
}
onSuccess(response, file, fileList) {
if (response.code === '000000') {
let retObj = response.data;
this.msgSuccess(response.msg);
this.$emit('successReload',retObj);//返回值到父页面
this.closeDialog();
} else {
this.msgError(response.msg);
}
}

  

上传功能-后端
@RequestMapping(value = "/uploadFileTest")
public ResultEntity uploadFileTest(@RequestParam("file") MultipartFile file) {
logger.info("接收到的文件数据为:" + file);
ResultEntity re = new ResultEntity();
Map<String, Object> retMap = null;
if (file.isEmpty()) {
re.setMsg("上传文件为空");
return re;
}
String fileName = file.getOriginalFilename();
logger.info("上传文件名:" + fileName);
logger.info("文件上传路径:" + fileUploadLocale);
String suffixName = fileName.substring(fileName.lastIndexOf("."));
String prefixName = fileName.substring(0, fileName.lastIndexOf("."));
try {
File dest0 = new File(fileUploadLocale);
File dest = new File(fileUploadLocale ,
prefixName+"-"+ ToolDateTime.getDate(ToolDateTime.PATTERN_YMDHMS)+suffixName);
// 检测是否存在目录
logger.info("上传文件保存名称:" + dest.getName());
if (!dest0.exists()) {
dest0.mkdirs();
}
file.transferTo(dest);
retMap = new HashMap<String, Object>();
retMap.put("bankFileName",dest.getName());
retMap.put("bankFile",dest.getAbsolutePath());
re.data(retMap).ok();
} catch (Exception e) {
logger.error("文件上传错误",e);
re.setMsg("上传文件失败");
}
return re;
}

  

-引入弹窗页面import fileUpload from 'src/page/cuApplyManage/fileUpload.vue';-页面布局    <div>        <fileUpload ref="dialog" @successReload="fileUploadSuccessReload" ></fileUpload>    </div>-上传成功后,从上传子页面传值到父页面fileUploadSuccessReload(data){let acctData = this.acctFormData;let dealData = (JSON.stringify(acctData) + JSON.stringify(data)).replace(/{}/, '');dealData = JSON.parse(dealData.replace(/}{/, ','));this.acctFormData = dealData ;}-按钮打开上传页面    <el-button type="primary" icon="el-icon-upload" @click="showFileUpload">上传</el-button>-按钮事件showFileUpload(){this.$refs.dialog.pvalue = true;}
上传功能-页面<el-uploadv-show="true"accept=".png,.jpg,.pdf"ref="upload"action="uploadAction":before-upload="beforeUpload":http-request="uploadHttpRequest":file-list="fileList":auto-upload="false":show-file-list="true":multiple="false"></el-upload>uploadHttpRequest(param) {//执行上传动作var this_ = this;const formData = new FormData();formData.append('file', param.file);const url = this.uploadAction;let xhr = new XMLHttpRequest();xhr.open('post',url,true);xhr.onreadystatechange = function () {    if (xhr.readyState == 4) {        if (xhr.status == 200 || xhr.status == 0) {            this_.onSuccess(JSON.parse(xhr.responseText));        }else{            this_.onError(xhr.responseText);        }    }}xhr.send(formData);},doUplaod() {//触发uploadHttpRequestthis.$refs.upload.submit();}onSuccess(response, file, fileList) {if (response.code === '000000') {let retObj = response.data;this.msgSuccess(response.msg);this.$emit('successReload',retObj);//返回值到父页面this.closeDialog();} else {this.msgError(response.msg);}}上传功能-后端@RequestMapping(value = "/uploadFileTest")public ResultEntity uploadFileTest(@RequestParam("file") MultipartFile file) {    logger.info("接收到的文件数据为:" + file);    ResultEntity re = new ResultEntity();    Map<String, Object> retMap = null;    if (file.isEmpty()) {        re.setMsg("上传文件为空");        return re;    }    String fileName = file.getOriginalFilename();    logger.info("上传文件名:" + fileName);    logger.info("文件上传路径:" + fileUploadLocale);    String suffixName = fileName.substring(fileName.lastIndexOf("."));    String prefixName = fileName.substring(0, fileName.lastIndexOf("."));    try {        File dest0 = new File(fileUploadLocale);        File dest = new File(fileUploadLocale ,                prefixName+"-"+ ToolDateTime.getDate(ToolDateTime.PATTERN_YMDHMS)+suffixName);        // 检测是否存在目录        logger.info("上传文件保存名称:" + dest.getName());        if (!dest0.exists()) {            dest0.mkdirs();        }        file.transferTo(dest);        retMap = new HashMap<String, Object>();        retMap.put("bankFileName",dest.getName());        retMap.put("bankFile",dest.getAbsolutePath());        re.data(retMap).ok();    } catch (Exception e) {        logger.error("文件上传错误",e);        re.setMsg("上传文件失败");    }    return re;}

上传功能-弹窗实现-vue的更多相关文章

  1. Vue实现多文件上传功能(前端 + 后端代码)

    本人业余前端开发,因为公司(很坑)觉得我很牛逼,所以让我前后端一起玩,无奈的我只能磕磕碰碰的研究起了vue. 开发项目的时候,用到文件上传的功能很常见,包括单文件上传和多文件上传,上传各种类型的文件. ...

  2. 使用element的upload组件实现一个完整的文件上传功能(上)

    说到标题就有点心塞了,前段时间项目上需要实现一个文件上传的功能,然后就咔咔的去用了element的upload组件,不用不知道一用吓一跳哇. 在使用的过程中遇到了很多让意想不到的问题,后来也因为时间问 ...

  3. 使用element的upload组件实现一个完整的文件上传功能(下)

    本篇文章是<使用element的upload组件实现一个完整的文件上传功能(上)>的续篇. 话不多说,接着上一篇直接开始 一.功能完善—保存表格中每一列的文件列表状态 1.思路 保存表格中 ...

  4. .net下Ueditor配置(主要讲解上传功能配置)

    Ueditor上传功能配置——.net 今天项目中用到Ueditor就自己配置了下,但上传功能和图片显示功能不能正确使用,就自己琢磨了下.已实现上传功能,并能显示正确的图片和文件,在线编辑功能也能使用 ...

  5. megapix-image插件 使用Canvas压缩图片上传 解决手机端图片上传功能的问题

    最近在弄微信端的公众号.订阅号的相关功能,发现原本网页上用的uploadify图片上传功能到手机端有的手机类型上就不能用了,比如iphone,至于为啥我想应该不用多说了吧(uploadify使用fla ...

  6. iOS 的 Safari 文件上传功能详解

    iOS 6 给 Safari 浏览器带来的另外一个功能是文件上传,终于 Safari 终于支持 input 输入框的文件类型了,并且还支持 HTML媒体捕获(HTML Media Capture). ...

  7. [php基础]PHP.INI配置:文件上传功能配置教程

    昨天分享了在PHP网站开发中如何在php.ini中配置实现session功能的PHP教程,今天继续分享在利用PHP实现文件上传功能时几点关键php.ini的配置. 说到在php.ini中的文件上传的配 ...

  8. FLASH图片上传功能—从百度编辑器UEditor里面提取出来

    为了记录工作中碰到的各种问题,以及学习资料整理,今天开始,将以往的文章进行了一个整理,以后也开始认真的记录学习过程中的各种问题 在HTML里面的文件上传功能一直是个问题,为了实现上传文件大小限制,怎样 ...

  9. 达到HTTP合约Get、Post和文件上传功能——采用WinHttp介面

    于<采用WinHttp实现HTTP协议Get.Post和文件上传功能>一文中,我已经比較具体地解说了怎样使用WinHttp接口实现各种协议. 在近期的代码梳理中,我认为Post和文件上传模 ...

随机推荐

  1. python-列表list和元组tuple

    list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...

  2. Linux内核源码分析之setup_arch (二)

    1. 概述 接着上一篇<Linux内核源码分析之setup_arch (一)>继续分析,本文首先分析arm_memblock_init函数,然后分析内核启动阶段的是如何进行内存管理的. 2 ...

  3. [Windows] 在 Microsoft Docs 网站中挖掘 MVVM 的各种学习资源

    最近写了一些 MVVM 框架的文章,翻了一些 Microsoft Docs 的文档,顺便就对 MVVM 本身来了兴致,想看看更多当年相关的文档.在 MVVM 出现后十多年,我在不同的场合见到过多种 M ...

  4. 【题解】「P6832」[Cnoi2020]子弦

    [题解]「P6832」[Cnoi2020]子弦第一次写月赛题解( 首先第一眼看到这题,怎么感觉要用 \(\texttt{SAM}\) 什么高科技的?结果一仔细读题,简单模拟即可. 我们不难想出,出现最 ...

  5. CSP-S 初赛最后的复习

    2020CSP-S 模拟赛1 3.一个圆形水池中等概率随机分布着四只鸭子,那么存在一条直径,使得鸭子全在直径一侧的概率是(). A.\(\frac 1{16}\) B.\(\frac 1{8}\) C ...

  6. AcWing 329. 围栏障碍训练场

    大型补档计划 题目链接 考虑模拟这个过程. \(f[i][0 / 1]\) 表示从第 \(i\) 个围栏的 左/右端点开始往下走,走到原点的最小花费. 转移很容易想到,就是考虑找到一个往下走第一个碰到 ...

  7. uniapp-父组件数组变化同步子组件视图渲染

    项目中子组件封装的是一个picker,父组件需要传数组到子组件中. 如果父组件的数组出现变更,视图中的子组件或许不能直接刷新渲染,需要反复弹起几下才能看到. 试过深度监听,但都没有用,ref也不知道为 ...

  8. Mycat配置分库分表(垂直分库、水平分表)、全局序列

    1. Mycat相关文章   Linux安装Mycat1.6.7.4并实现Mysql数据库读写分离简单配置   Linux安装Mysql8.0.20并配置主从复制(一主一从,双主双从)   Docke ...

  9. rancher安装,快速安装

    apt-get install docker.io docker -y docker run -d --restart=always -v /data/rancher_server:/var/lib/ ...

  10. hive行存储与列存储

    首先判断hive表是行存储还是列存储 判断方法: 1.使用hiveSQL"show create table table_name",这种方式,可以查看建表时候指定的那种方式; 2 ...