Vue中使用fromData完成上传.md

本文介绍如何在Vue项目中使用FormData实现文件上传。通过创建一个隐藏的input标签,结合按钮点击事件触发文件选择,然后利用FormData将文件转换为适合ajax传输的数据格式,从而完成文件上传操作。

完成上传操作,思路如下:
1、页面上写一个type="file"的input标签,是隐藏的,需要绑定一个ref属性

	html:
	<input type="file"
	       name="file"
	       ref="file"
	       @change="handleFileChange"
	       style="display:none">
	
	javaScript:
	handleFileChange(e) {
	    let file = e.target.files[0]
	    this.fileName = file.name
	    this.file = file
	}

2、页面上有一个按钮,点击按钮让它去触发input标签的方法

	html:
	<el-button size="small"
	           type="primary"
	           @click="handleUploadFile">上传文件</el-button>
	
	javaScript:
	handleUploadFile(){
	    this.$refs.file.click()
	}

3、由于发送ajax请求带文件过去,文件则会变成文档的字符节流

		$.ajax({
            type: "post",
            url:  "接口地址",
            data: formdata,
            dataType: 'json',
            contentType: false, // 不用设置Content-Type请求头
            async: true,    //默认是true:异步,false:同步。
            success: function (data) {
                callback(data);  //成功调用回滚
                alert("成功~~~")
            },
            error: function (data) {
                alert("出现异常~~~")
            },
        });

4、因此会用到FromData来完成上传

	javaScript:
	handleImport() {
	    let formData = new FormData()
	    formData.append('devices', this.file)
	    this.$api.asset.importDevice(formData).then(response => {
	        if (response.success) {
	          // 判断成功
	          this.$message.success('导入成功')
	        } else {
	          // 判断失败
	          this.$message.error(response.message)
	        }
	    })
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潔19

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值