上传功能-弹窗实现-vue
-引入弹窗页面
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的更多相关文章
- Vue实现多文件上传功能(前端 + 后端代码)
本人业余前端开发,因为公司(很坑)觉得我很牛逼,所以让我前后端一起玩,无奈的我只能磕磕碰碰的研究起了vue. 开发项目的时候,用到文件上传的功能很常见,包括单文件上传和多文件上传,上传各种类型的文件. ...
- 使用element的upload组件实现一个完整的文件上传功能(上)
说到标题就有点心塞了,前段时间项目上需要实现一个文件上传的功能,然后就咔咔的去用了element的upload组件,不用不知道一用吓一跳哇. 在使用的过程中遇到了很多让意想不到的问题,后来也因为时间问 ...
- 使用element的upload组件实现一个完整的文件上传功能(下)
本篇文章是<使用element的upload组件实现一个完整的文件上传功能(上)>的续篇. 话不多说,接着上一篇直接开始 一.功能完善—保存表格中每一列的文件列表状态 1.思路 保存表格中 ...
- .net下Ueditor配置(主要讲解上传功能配置)
Ueditor上传功能配置——.net 今天项目中用到Ueditor就自己配置了下,但上传功能和图片显示功能不能正确使用,就自己琢磨了下.已实现上传功能,并能显示正确的图片和文件,在线编辑功能也能使用 ...
- megapix-image插件 使用Canvas压缩图片上传 解决手机端图片上传功能的问题
最近在弄微信端的公众号.订阅号的相关功能,发现原本网页上用的uploadify图片上传功能到手机端有的手机类型上就不能用了,比如iphone,至于为啥我想应该不用多说了吧(uploadify使用fla ...
- iOS 的 Safari 文件上传功能详解
iOS 6 给 Safari 浏览器带来的另外一个功能是文件上传,终于 Safari 终于支持 input 输入框的文件类型了,并且还支持 HTML媒体捕获(HTML Media Capture). ...
- [php基础]PHP.INI配置:文件上传功能配置教程
昨天分享了在PHP网站开发中如何在php.ini中配置实现session功能的PHP教程,今天继续分享在利用PHP实现文件上传功能时几点关键php.ini的配置. 说到在php.ini中的文件上传的配 ...
- FLASH图片上传功能—从百度编辑器UEditor里面提取出来
为了记录工作中碰到的各种问题,以及学习资料整理,今天开始,将以往的文章进行了一个整理,以后也开始认真的记录学习过程中的各种问题 在HTML里面的文件上传功能一直是个问题,为了实现上传文件大小限制,怎样 ...
- 达到HTTP合约Get、Post和文件上传功能——采用WinHttp介面
于<采用WinHttp实现HTTP协议Get.Post和文件上传功能>一文中,我已经比較具体地解说了怎样使用WinHttp接口实现各种协议. 在近期的代码梳理中,我认为Post和文件上传模 ...
随机推荐
- PyQt(Python+Qt)学习随笔:QWidget部件的palette属性以及ColorGroup、colorRole的用途和含义
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 1.palette属性 QWidget部件的palette属性用于控制 ...
- PyQt学习随笔:Model和View之间的数据互动过程
在<PyQt学习随笔:Qt中tem Views(Model-Based)和Item Widgets(Item-Based)控件的用途和关系>中介绍了,Model用于存储数据,View用于展 ...
- PyQt(Python+Qt)学习随笔:QAbstractItemView的SelectionBehavior属性
老猿Python博文目录 老猿Python博客地址 一.概述 SelectionBehavior属性用于控制选择行为操作的数据单位,是指选择时选中数据是按行.按列还是按项来选择.SelectionBe ...
- PyQt(Python+Qt)学习随笔:Qt Designer中连接Action和槽函数
在Designer中试了半天,终于找到了Action添加槽函数的方法,操作步骤: 在Designer右边界面中点击鼠标右键 确保信号/槽编辑被勾选,如图是未勾选的情况:. 勾选后会出现信号和槽的编辑界 ...
- 孪生网络入门(下) Siamese Net分类服装MNIST数据集(pytorch)
主题列表:juejin, github, smartblue, cyanosis, channing-cyan, fancy, hydrogen, condensed-night-purple, gr ...
- 再次学习sql注入
爆所有数据库 select schema_name from information_schema.schemata 先爆出多少个字段 id = 1 order by ?; mysql5.0及以上 都 ...
- 对巡风vulscan的理解
# coding:utf-8 # 漏洞检测引擎 import urllib2 import thread import time import pymongo import sys import da ...
- 【eJOI2020】考试(dp & 树状数组优化)
Description \(n\) 个正整数排成一列,每个位置 \(i\) 有一个初始值 \(A_i\) 以及目标值 \(B_i\). 一次操作可以选定一个区间 \([l, r]\),并将区间内所有数 ...
- CSP-S2020初赛游记
前一星期 感觉没怎么复习初赛啊,经常旷初赛练习赛--整天刷复赛题被老师怒斥了. zhoukangyang 天天做初赛(但是一天还是稳定做 \(2\) 道黑题),是不是要 AK 了啊(慌... 前一天 ...
- Codeforces Edu Round 47 A-E
A. Game Shopping 按照题意模拟既可. #include <iostream> #include <cstdio> using namespace std; co ...