【vue实现的前端对文件的下载】el-upload上传文件中的前端下载文件方法

本文介绍了如何在Vue.js项目中利用el-upload组件实现前端文件下载。通过Blob对象理解文件处理,并详细解析了handleDownLoad方法,该方法接收从el-upload插槽获取的file对象来触发文件下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明

vue实现的前端对文件的下载操作。这里实现对文件的下载是基于从已经写好的文件服务器的文件下载家口来进行下载的。护照要是记录方便日后查找。


一、Blob

首先要了解一下Blob:
Blob() 构造函数返回一个新的Blob对象。blob的内容由参数数组中给出的值串联组成。

File 对象是特殊类型的 Blob,且可以用在任意的 Blob 类型的 context 中。比如说, FileReader, URL.createObjectURL(), createImageBitmap() (en-US), 及 XMLHttpRequest.send() 都能处理 Blob 和 File。

常用的blob的语法:
Blob blob = new Blob(array, option);

参数说明:

array 是一个由ArrayBuffer, ArrayBufferView, Blob, DOMString 等对象构成的 Array ,或者其他类似对象的混合体,它将会被放进 Blob。DOMStrings 会被编码为 UTF-8。
options 是一个可选的BlobPropertyBag字典,它可能会指定如下两个属性:
type,默认值为 "",它代表了将会被放入到 blob 中的数组内容的 MIME 类型。
endings,默认值为"transparent",用于指定包含行结束符\n的字符串如何被写入。 它是以下两个值中的一个:"native",代表行结束符会被更改为适合宿主操作系统文件系统的换行符,或者 "transparent",代表会保持 blob 中保存的结束符不变 Non-Standard

二、实现下载

el-ipload:

这里和elementui官网的是一样的,可以去官网看一下

<el-upload
	ref="upload"
	accept=”.pdf “ // 允许上传文件类型
	:action="url" // 上传地址
	:file-list="fileList" // 绑定上传的文件列表
	list-type="picture-card"
>
	// 上传框的图标
	<i slot="default"  class="el-icon-plus" />
	// 通过插槽定义方法
	<div slot="file" slot-scope="{file}" >
		<img src=""  class="" />
		<span class="el-upload-list__item-actions">
			<span
			class="el-upload-list__item-delete"
			@click="handleDownLoad(file)"
			>
				<i class="el-icon-download" />
			</span>
		</div>
	</div>
</el-upload>

handl

Vue 2中,使用Element UI库的`el-upload`组件可以方便地处理CSV文件上传。以下是基本步骤: 1. 引入依赖:首先需要安装Element UI库,可以在项目中通过npm或yarn添加: ```bash npm install element-ui # 或者 yarn add element-ui ``` 然后在入口文件(如main.js)中引入并注册: ```javascript import { ElUpload } from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; Vue.component('el-upload', ElUpload); ``` 2. 在模板中使用`el-upload`:创建一个`<el-upload>`元素,并设置属性,例如允许单次或多文件上传、设置表单数据(如果需要)、提供上传成功的回调等。 ```html <template> <div> <el-upload action="your-api-url" <!-- 服务器接收文件的URL --> :multiple="true" <!-- 是否支持多文件上传,默认false --> :on-success="handleSuccess" <!-- 文件上传成功后的回调 --> :file-list="fileList" <!-- 用于展示已上传文件列表 --> accept="application/vnd.ms-excel, text/csv" <!-- 只接受.csv文件 --> > <i class="el-icon-upload"></i> 点击<em>上传</em> </el-upload> </div> </template> ``` 3. 实现回调函数:在这里处理上传成功的响应,通常会解析上传的CSV内容,或者将文件保存到本地或者其他地方。 ```javascript <script> export default { data() { return { fileList: [], // 用于存储上传文件的信息 }; }, methods: { handleSuccess(response, file) { if (response.status === 200) { let blob = new Blob([response.data], { type: 'text/csv' }); let url = window.URL.createObjectURL(blob); this.fileList.push({ name: file.name, url }); // 这里可以根据需要进一步操作文件内容,比如解析成表格数据 } }, }, }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值