Ant Design (vue,react)Upload文件上传功能

  • 一、Ant Design Vue文件上传功能
  • 二、Ant Design React文件上传功能

一、Ant Design Vue文件上传功能

  1. 文件上传选项框
 <a-modaltitle="上传文件":footer="null"//不显示底部按钮:visible="visible"//是否显示:confirmLoading="confirmLoading"//确定按钮 loading@cancel="handleCancel"//取消方法><a-upload:fileList="fileList"//上传的文件列表:remove="handleRemove"//文件删除方法:beforeUpload="beforeUpload"//上传文件之前的钩子,参数为上传的文件><a-button><a-icon type="upload" />选择文件</a-button></a-upload></a-modal>
<div class="streetAdd"><a-button type="primary" icon="plus" @click="engineeringadd()">新增</a-button><a-button type="primary" icon="file" @click="showModal()">数据导入</a-button></div>

效果:

  1. js实现代码
//定义的变量
<script>
export default {data() {return {visible: false,confirmLoading: false,fileList: [],IpConfig: this.IpConfig.projectServiceDomain,}},mounted: function () {this.engineeringList()//that.alarmTypes=res.data.res.dictionaryList;},methods: {//点击数据导入按钮所调用的方法showModal() {this.visible = true},//对话框确认方法handleOk(e) {this.visible = falsethis.confirmLoading = false},//关闭弹框handleCancel(e) {//console.log('Clicked cancel button')this.visible = false},//删除上传文件handleRemove(file) {const index = this.fileList.indexOf(file)const newFileList = this.fileList.slice()newFileList.splice(index, 1)this.fileList = newFileList},//显示上传文件内容beforeUpload(file) {this.spinning = truevar that = thisthat.visible = false//文件类型var fileName = file.name.substring(file.name.lastIndexOf('.') + 1)if (fileName != 'xlsx' && fileName != 'xls') {this.$message.error('文件类型必须是xls或xlsx!')this.spinning = falsethat.visible = truereturn false}//读取文件大小var fileSize = file.size//console.log(fileSize)if (fileSize > 1048576) {this.$message.error('文件大于1M!')this.spinning = falsethat.visible = truereturn false}let fd = new FormData()//表单格式fd.append('file', file)//添加file表单数据let url = this.IpConfig + '/xing/jtGongLuShouFeiZhan/upload'this.$ajax({method: 'post',url: url,data: fd,headers: {'Content-Type':'multipart/form-data;boundary=' + new Date().getTime(),},}).then((rsp) => {console.log(rsp)let resp = rsp.dataif (rsp.status == 200) {that.fileList = []that.visible = falsethat.confirmLoading = falsethat.$message.success('文件上传成功!')this.spinning = false} else {this.$message.error('文件上传失败!')that.visible = true}}).catch((error) => {this.$message.error('请求失败! error:' + error)this.spinning = falsethat.visible = true})return false}}}
</script>

二、Ant Design React文件上传功能

  1. 文件上传选项框
render() {const upLoad = {name: 'files',action: 'http://192.168.0.102:7072/folder/annex/upload',//文件上传地址headers: {authorization: 'authorization-text',},onChange: this.handleChange.bind(this),//上传文件改变时的状态showUploadList: false,//是否展示文件列表}const { page, pages, fileType } = this.state;return (<React.Fragment><div className={styles.tableBtnBox}><Button disabled={this.state.showBtn} type="primary">新建</Button><Button disabled={this.state.showBtn} //是否可用onClick={this.onUpload.bind(this)} //点击方法className={styles.uploadBtn} //样式type="primary"ghost>上传</Button></div><Modaltitle="文件上传"visible={this.state.uploadState}//是否显示onOk={this.handleOk.bind(this)}//确认方法onCancel={this.handleCancel.bind(this)}//取消方法><Dragger {...upLoad}><p className="ant-upload-drag-icon"><InboxOutlined /></p><p className="ant-upload-text">单击或拖动文件到此区域以上传</p></Dragger>,</Modal></React.Fragment>)}

效果:


2. js实现代码


//点击上传按钮方法onUpload() {this.setState({uploadState: true,})}//文件上传handleChange(info) {var fileSize = info.file.size;if (info.file.status === 'done') {if (info.file.response.code === 500) {message.error('上传文件失败');return}let response = info.file.response.res[0];if (response.suffix == 'xlsx' || response.suffix == 'docx' || response.suffix == 'pdf') {//当文件类型是xlsx,docx,pdf三种格式时let userid = Number(localStorage.getItem('userid'));const baseUrl = 'http://192.168.0.123:8889';const api = '/zhyjxxzhpt/file/upload';let fd = new FormData();//表单格式fd.append("userid", userid);//添加userid数据fd.append("id", response.id);//添加id数据fd.append("name", response.name);//添加name数据fd.append("suffix", response.suffix);//添加suffix数据fd.append("type", response.type);//添加type数据axios({url: baseUrl + api,//文件数据保存的地址method: "post",data: fd,headers: {"Content-Type": "multipart/form-data;boundary=" + new Date().getTime()}}).then(res => {if (res.data.code == 'success') {message.success(`${response.name} 文件上传成功!`);}this.queryPrivate();})} else {message.error(`只能上传xlsx,docx,pdf文件!`);return false}} else if (info.file.status === 'error') {if (fileSize > 1048576) {message.error(`${info.file.name}文件大于1M!`);} else {message.error(`${info.file.name} 文件上传失败!`);}}}
//点击确定按钮方法handleOk = e => {this.setState({uploadState: false,});};
//取消方法handleCancel = e => {this.setState({uploadState: false,});};

写在最后:上述代码均是自己在开发过程中总结出来,或许还有不足之处,但是希望有些内容能够帮到大家,谢谢观赏!

Ant Design Upload 文件上传功能相关推荐

  1. ant design Upload组件上传文件类型

    Upload组件上传文件类型设置 1.设置上传文件类型为excel <template><a-uploadname="file":multiple="t ...

  2. antd design Upload文件上传,删除,批量上传组件封装

    1.单个文件上传组件,无文件时显示上传,有文件时显示文件,可删除,重新上传,样式适合图片上传,可根据文件格式更改样式,效果图如下. 页面调用代码 <FormItem{...formItemLay ...

  3. Ant Design Upload 自定义上传 customRequest

    本文章重点描述上传组件 Upload 的 customRequest 自定义文件上传逻辑的实现 目录 Upload 常用属性和方法 默认上传 customRequest 自定义上传 Upload 自定 ...

  4. Ant Design Vue 文件上传自定义按钮和文件列表位置

    采用默认上传文件样式如下: 主要代码如下,可参照官方示例 <a-uploadname="file"style="float: left;"@change= ...

  5. React开发(267):ant design upload简单上传

    ## 如果只是简单的上传,没必要写 customRequest ```javascript<Uploadname="file"action={`${BASE_URL}/com ...

  6. Android 实现文件上传功能(upload)

    文 件上传在B/S应用中是一种十分常见的功能,那么在Android平台下是否可以实现像B/S那样的文件上传功能呢?答案是肯定的.下面是一个模拟网站程 序上传文件的例子.这里只写出了Android部分的 ...

  7. java前后端分离的实现方式_采用前后端分离的方式进行开发,实现了几种常用的文件上传功能...

    MyUploader-Backend 单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传 简介 采用前后端分离的方式进行开发,实现了几种常用的文件上传功能. 前端采用 vue.js + ...

  8. Spring 文件上传功能

    本篇文章,我们要来做一个Spring的文件上传功能: 1. 创建一个Maven的web工程,然后配置pom.xml文件,增加依赖: 1 2 3 4 5 <dependency>     & ...

  9. jQuery插件AjaxFileUpload文件上传实现Javascript多文件上传功能

     Ajax file upload plugin是一个功能强大的文件上传jQuery插件,可自定义链接.或其它元素庖代传统的file表单上传结果,可实现Ajax动态提示文件上传 过程,同时支撑多文 ...

  10. Node.js 博客实例(三)添加文件上传功能

    原教程 https://github.com/nswbmw/N-blog/wiki/_pages的第三章 上传文件眼下有三种方法: 使用 Express 自带的文件上传功能,不涉及数据库 使用 For ...

最新文章

  1. 为了用户体验,不要做浏览器兼容
  2. HarmonyOS之组件布局的创建和使用
  3. VMware linux 在2.4.20-8 中编译2.6.15.5 内核
  4. it跟java的区别_详细介绍JAVA和C++区别
  5. IO 模型 IO 多路复用
  6. android api接口封装,android-apidesigner是一个网络接口封装工具
  7. 怎样使用Javascript操作XMLDOM才能兼容IE、FireFox浏览器呢?
  8. 12个超炫数据可视化工具_Python奇淫技巧,5个炫酷的数据可视化工具
  9. SQL 格式化输出 千分位 ¥货币格式
  10. 差分进化算法求解函数最优解matlab实现
  11. ASCⅡ码与字符的相互转化
  12. 内蒙古等保测评机构项目测评收费价格标准参考
  13. 《孙子兵法》的逻辑结构
  14. alc662声卡注入id_ALC662声卡Linux提取文件.doc
  15. 数据立方体的基本计算
  16. 揭秘,两个大西瓜竟然能合成它...
  17. vim的安装以及基础使用
  18. Android中的四大组件
  19. mac os 多屏显示Dock
  20. 22-JavaScript 冒泡事件、事件捕获、默认事件、事件委托 DAY18(5.5)

热门文章

  1. 【动画消消乐|CSS】083.纯CSS实现卡通齿轮效果
  2. java doc转mht_Word文档格式doc转为mht.doc
  3. Python入门:jieba库的使用
  4. 新梦想干货——软件测试中的43个功能测试点(下)
  5. UE4 Datasmith 格式简述
  6. 2020年第六届 美亚杯电子取证 团体赛 wp
  7. Matlab中求解总体标准差和样本标准差的区别(std函数)
  8. 基于python酒店管理系统设计与实现.zip(论文+项目源码)
  9. 智慧电力信息化系统建设整体方案
  10. 软考高级网络规划设计师历年论文真题汇总2009-2021