首页 > 其他分享 >Vue之txt文件上传功能

Vue之txt文件上传功能

时间:2023-01-11 17:22:30浏览次数:44  
标签:文件 Vue 离线 fileList message txt 上传

Vue之文件上传功能

需求:智能中医项目需要涉及一个数据上传功能,上传一个txt文件

格式:以表单形式上交给后端同学,Id读取表格行内id即可

展示如下:

image.png

界面实现:

<el-dialog
	title="离线串口文件上传"
	:visible.sync="dialogUploadSerialPortFile"
	>
	<el-form
		ref="offlineForm"
        :model="offlineForm"
        label-width="100px"
        enctype="multipart/form-data"
	>
		<el-form-item 
                      label="当前患者Id"
                      >
			<el-input 
                      v-model="offlineForm.patientId" 
                      disabled 
                      />
		</el-form-item>
                <el-form-item 
                      label="当前问诊Id"
                      >
			<el-input 
                      v-model="offlineForm.diagnosisId" 
                      disabled 
                      />
		</el-form-item>
		<el-form-item 
                      label="上传文件"
                      >
            <!--action不填但是必须有-->
	    <el-upload
            	ref="upload"
            	class="upload-demo"
            	style="text-align: center;"
            	action=""
            	:headers="headers"
            	multiple
            	drag
            	accept=".txt"
            	:on-remove="onRemove"
            	:on-exceed="handleExceed"
            	:on-change="getFile"
            	:limit="1"
            	:auto-upload="false"
            	:file-list="fileList"
			>
            	<i class="el-icon-upload" />
            	<div 
                     class="el-upload__text"
                     >
                    将文件拖到此处,或<em>点击上传</em>
                </div>
            	<div 
                     slot="tip" 
                     class="el-upload__tip"
                     >
                    请上传txt文件,目前仅支持单个文件上传哦!
                </div>
			</el-upload>
		</el-form-item>
	</el-form>
	<div 
         slot="footer" 
         class="dialog-footer"
         >
		<el-button 
                   @click="dialogUploadSerialPortFile =false"
                   >取消
        </el-button>
        <el-button 
                   type="primary" 
                   @click="submitSerialPortFile"
                   >确定
        </el-button>
	</div>
</el-dialog>

data数据

// 离线数据所需的id
offlineForm: {
  patientId: undefined,
  diagnosisId: undefined
},
// 文件列表
fileList: [],
// 上传(文件所需格式)
headers: { 'Content-Type': 'multipart/form-data' }

功能实现:

// 上传离线串口文件,打开窗口
uploadSerialPortFile(row) {
    // 文件置空
	this.fileList = []
	this.dialogUploadSerialPortFile = true
	this.offlineForm.patientId = this.patientId
    this.offlineForm.diagnosisId = row.id
},
// 改变时的操作
getFile(file, fileList) {
	this.fileList = fileList
},
// 超限
handleExceed(files, fileList) {
	this.$message.warning('目前只能上传一个文件')
},
// 移除
onRemove(file, fileList) {
	this.$message.success('已成功移除该文件')
},
// 提交离线串口文件
submitSerialPortFile() {
	if (this.fileList.length <= 0) {
		this.$message.error('至少上传一个文件!')
	}
    // 定义FormData格式,通过append添加
	const formData = new FormData()
    // 根据后端需要的参数
	formData.append('file', this.fileList[0].raw) // 由于文件略大需要处理,加.raw
	formData.append('patientId', this.offlineForm.patientId)
    formData.append('diagnosisId', this.offlineForm.diagnosisId)
    // 打印查看的格式
	// console.log(formData.get('patientId'))
	// console.log(formData.get('diagnosisId'))
	// console.log(formData.get('file'))
	uploadOfflineData(formData).then(() => {
		this.dialogUploadSerialPortFile = false
        this.$notify({
			title: '成功',
			message: '上传离线数据成功',
			type: 'success',
			duration: 2000
		})
	})
}

标签:文件,Vue,离线,fileList,message,txt,上传
From: https://www.cnblogs.com/wangzheming35/p/17044394.html

相关文章

  • vue el-date-picker多选日期时间时,支持时间排序
    需求背景:当el-date-picker可以多选日期时,时间的顺序是按照选择的顺序来的,体验不是很好。需要在选时间的同时进行时间排序 解决方案:使用watch监听v-model绑定的值的变......
  • WebUploader超大文件上传
    ​ 总结一下大文件分片上传和断点续传的问题。因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况。http的网络请求中本身就已经具备了分片上传功能,当传输的文件比......
  • Vue多选问卷设计
    需求:智能中医项目需要在医院端设计一个填写多选的问卷模块,医生根据选项提示填写患者相关信息,用来存储中医中五脏六腑的信息。提交的问卷,可以在展示页面进行浏览,浏览已勾选......
  • 1月11日内容总结——网络不通排查流程、重要目录讲解、系统优化和环境变量、上传与下
    目录一、⽹络不通排查流程二、etc⽬录下重要的数据⽂件三、usr⽬录下重要的数据⽂件四、var⽬录下重要的数据⽂件五、proc⽬录重要的数据⽂件六、系统优化相关七、环境变量......
  • 从面试题入手,畅谈 Vue 3 性能优化
    前言今年又是一个非常寒冷的冬天,很多公司都开始人员精简。市场从来不缺前端,但对高级前端的需求还是特别强烈的。一些大厂的面试官为了区分候选人对前端领域能力的深度,经常......
  • Linux day2:⽹络不通排查流程 linux重要数据文件 系统优化相关 上传下载 文件权限 所属
    目录⽹络不通排查流程linux重要数据文件etc⽬录下重要的数据⽂件usr⽬录下重要的数据⽂件var⽬录下重要的数据⽂件proc⽬录重要的数据⽂件系统优化相关环境变量下载软件优......
  • 【Vue】eslint报错“Component name “XXX“ should always be multi-word”的解决方
    第一种解决方法:修改组件名称为大驼峰,不要用系统中命令常见的名称。第二种解决方法:在根目录下,打开【.eslintrc.js】文件,如果没有,就新建,内容module.exports={root......
  • vue父子组件
    父组件主动获取子组件的数据和方法1..调用子组件的时候定义一个ref<headerchildref="headerChild"></headerchild>2.在父组件里面通过this.$refs.headerChild.......
  • Vue Review
    Vuereview参考网址https://www.cnblogs.com/songhaixing/p/14706979.html三种获取data里面的值的方法......<body><divid="container">{{msg}}......
  • JavaScript超大文件上传
    ​ 我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。这次项目的需求:支持大文件的上传和续传,要求续传支持......