-引入弹窗页面
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. 建立sa用户登录

    Sa用户是SQL Server的超级管理员用户,由于该用户的特殊性,往往容易成为被攻击的漏洞对象,因此建议不要轻易启动该用户.下面讲述如何以Sa用户的身份登录当前的SQL Server系统. 第一步: ...

  2. 自己编写k8s

    ## 基于Docker和Kubernetes的企业级DevOps实践训练营 ### 课程准备 1. 离线镜像包 百度:https://pan.baidu.com/s/1N1AYGCYftYGn6L0Q ...

  3. Linux 批量创建user和批量删除用户

    Linux 批量创建user和批量删除用户 以下为批量创建用户: #首先我们需要创建一个xxx.txt文件,把需要的我们创建的用户写在这个文本里面来,注意:每写完一个用户都需要换行. vim user ...

  4. 应用案例——高并发 WEB 服务器队列的应用

    在高并发 HTTP 反向代理服务器 Nginx 中,存在着一个跟性能息息相关的模块 - 文件缓存. 经常访问到的文件会被 nginx 从磁盘缓存到内存,这样可以极大的提高 Nginx 的并发能力,不过 ...

  5. 用正则怎么将html文件中文字取出进行ASCII码转换?

    用正则怎么将html文件中文字取出?今天碰到这个问题,思来想去尝试了好几种方法,历经一阵头脑风暴,最后终于还是解决了,想想还是来记录一下.一共定义了三个函数,包含正则切割.正则判断对象开头.ASCII ...

  6. mysql数据库设置超时断开连接

    mysql数据库长时间未操作自动断开连接由参数:interactive_timeout和wait_timeout控制,默认都是8小时(28800分钟) mysql> show variables ...

  7. sqlplus、lsnrctl命令工具不可用(libclntsh.so.11.1)

    原因: libclntsh.so.11.1文件丢失了 解决方法: 在其他机器把这个文件拷贝到目标库安装目录底下的lib目录即可

  8. jmeter__编写脚本学习笔记、备忘

    web持续添加 前言: 1. token就是令牌,比如你授权(登录)一个程序时,他就是个依据,判断你是否已经授权该软件:也叫关联 2. cookie就是写在客户端的一个txt文件,里面包括你登录信息之 ...

  9. win10平衡模式、高性能模式和卓越模式三种电池模式的区别

    win10在1803版本后,有了很多隐藏的功能.电池模式中的"卓越模式"就是其中之一. 互相比较一下: 节能模式:顾名思义是最省电的,此模式下会禁用一些系统特效,且CPU运行频率是 ...

  10. vue 事件函数传参

    事件函数传参 在元素绑定事件时候,如果我们的函数没有传参,他也会有一个默认的传参值 event 但是如果我们的函数有传参,那么它必须作为做为最后一个传参值显示传递,且必须为$event 通过代码打印我 ...