-引入弹窗页面
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. 第9.10节 Python中IO模块其他文件操作属性和方法简介

    本文中所有案例中的fp都是使用open函数打开文件返回的一个文件对象,为了节省篇幅,大部分没有提供文件打开的代码. 一. 文件是否关闭的属性 属性名:closed 功用:判断文件是否关闭 示例: &g ...

  2. PyQt开发样例: 利用QToolBox开发的桌面工具箱Demo

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 toolBox工具箱是一个容器部件,对应类为QToolBox,在其内有一列从上到下顺序排列 ...

  3. 原生JS学习之秒表、日历

    Tips:涉及知识点:Date   setInterval    DOM    秒表 效果图: 简单构造出草图 Html代码 1 <!DOCTYPE html> 2 <html> ...

  4. .NET 开源导入导出库 Magicodes.IE 2.5发布

    今天我们发布了2.5版本,这当然也离不开大家对Magicodes.IE的支持,今天我也是跟往常一样列举了该版本一些重要的更新内容. 当然也要说一下,在这个版本中我们设计了全新的LOGO Excel导出 ...

  5. typora字体与字体颜色

    字体 基本格式:\字体信息{内容} 罗马体\rm \rm{罗马体abc}>>\(\rm{罗马体abc}\) 意大利体\it \it{意大利体}>>\(\it{意大利体}\) 等 ...

  6. 笔记-[ZJOI2014]力

    [ZJOI2014]力 \[\begin{split} E_j=&\sum_{i=1}^{j-1}\frac{q_i}{(i-j)^2}-\sum_{i=j+1}^{n}\frac{q_i}{ ...

  7. 计算机语言与JAVA的发展

    计算机语言与JAVA的发展 第一代语言 2进制 第二代语言 汇编语言 解决人类无法读懂的问题 指令替代二进制 目前应用 逆向工程 机器人 病毒 第三代语言 摩尔定律 性能提升愈来愈慢 高级语言 面向过 ...

  8. libev的用法

    本例是以linux环境c++的用法,ide用的是vs2019 一.libev的安装 我们采用的是apt-get方法(偷懒^_^),你也可以采用源码方式安装 sudo apt-get install l ...

  9. DVWA各等级文件上传漏洞

    file upload 文件上传漏洞,攻击者可以通过上传木马获取服务器的webshell权限. 文件上传漏洞的利用是 够成功上传木马文件, 其次上传文件必须能够被执行, 最后就是上传文件的路径必须可知 ...

  10. Tokyo 五年 IT 生活

    今天阳光甚好,在家中小屋,闲来无事,回顾一下这五年的历程.我想从来东京的缘由.东京的环境.生活.IT这四个方面介绍一下. 首先,说一下为什么我会来到东京. 电子信息专业毕业,大学实验室学习IT,毕业后 ...