input 上传文件并回显 FileReader并限制选择文件时的类型

本文介绍了如何使用HTML5的FileReader API在不通过服务器的情况下,实现在浏览器中直接预览本地图片。通过JavaScript操作File对象,读取为data URL,动态插入到页面中显示。适合处理多张图片并支持格式限制。
摘要由CSDN通过智能技术生成

说一下思路
1、上传文件到服务器,然后获取到线上图片地址,将抵制放到img的src里就可以了
2、不通过服务器,本地显示,通过H5的FileReader

现在主要说一下第二种用法
上代码

<input type="file" id="myFile" accept="image/*,video/*">
<div id="show"></div>
var myFile = document.getElementById('myFile')
// myFile.files[0] 上传一张图片的时候使用 当多张图片的时候需要循环
var file = myFile.files[0]
var reader = new FileReader()
reader.readAsDataURL(file)
// 处理需要一些时间 所以之后的操作在onload 里写
reader.onload = () =>{
	document.getElementById("show").innerHTML = "<img src='"+reader.result+"'>";
}

这样就会将预览显示到对顶的DIV里
注意:如果多张图片请使用循环 并且注意innerHTML的写法

选择时,选择文件格式限制

accept可以限制文件的上传类型,比如只上传图片文件、视频文件、音频文件……如下

audio/*	接受所有的声音文件。
video/*	接受所有的视频文件。
image/*	接受所有的图像文件。

详细类型限制如下所示:

*.3gpp	audio/3gpp, video/3gpp	3GPP Audio/Video
*.ac3	audio/ac3	AC3 Audio
*.asf	allpication/vnd.ms-asf	Advanced Streaming Format
*.au	audio/basic	AU Audio
*.css	text/css	Cascading Style Sheets
*.csv	text/csv	Comma Separated Values
*.doc	application/msword	MS Word Document
*.dot	application/msword	MS Word Template
*.dtd	application/xml-dtd	Document Type Definition
*.dwg	image/vnd.dwg	AutoCAD Drawing Database
*.dxf	image/vnd.dxf	AutoCAD Drawing Interchange Format
*.gif	image/gif	Graphic Interchange Format
*.htm	text/html	HyperText Markup Language
*.html	text/html	HyperText Markup Language
*.jp2	image/jp2	JPEG-2000
*.jpe	image/jpeg	JPEG
*.jpeg	image/jpeg	JPEG
*.jpg	image/jpeg	JPEG
*.js	text/javascript, application/javascript	JavaScript
*.json	application/json	JavaScript Object Notation
*.mp2	audio/mpeg, video/mpeg	MPEG Audio/Video Stream, Layer II
*.mp3	audio/mpeg	MPEG Audio Stream, Layer III
*.mp4	audio/mp4, video/mp4	MPEG-4 Audio/Video
*.mpeg	video/mpeg	MPEG Video Stream, Layer II
*.mpg	video/mpeg	MPEG Video Stream, Layer II
*.mpp	application/vnd.ms-project	MS Project Project
*.ogg	application/ogg, audio/ogg	Ogg Vorbis
*.pdf	application/pdf	Portable Document Format
*.png	image/png	Portable Network Graphics
*.pot	application/vnd.ms-powerpoint	MS PowerPoint Template
*.pps	application/vnd.ms-powerpoint	MS PowerPoint Slideshow
*.ppt	application/vnd.ms-powerpoint	MS PowerPoint Presentation
*.rtf	application/rtf, text/rtf	Rich Text Format
*.svf	image/vnd.svf	Simple Vector Format
*.tif	image/tiff	Tagged Image Format File
*.tiff	image/tiff	Tagged Image Format File
*.txt	text/plain	Plain Text
*.wdb	application/vnd.ms-works	MS Works Database
*.wps	application/vnd.ms-works	Works Text Document
*.xhtml	application/xhtml+xml	Extensible HyperText Markup Language
*.xlc	application/vnd.ms-excel	MS Excel Chart
*.xlm	application/vnd.ms-excel	MS Excel Macro
*.xls	application/vnd.ms-excel	MS Excel Spreadsheet
*.xlt	application/vnd.ms-excel	MS Excel Template
*.xlw	application/vnd.ms-excel	MS Excel Workspace
*.xml	text/xml, application/xml	Extensible Markup Language
*.zip	aplication/zip	Compressed Archive

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Vue中读取Excel文件回显,可以使用第一种方法,即前端解析文件后将数据返回给后端。以下是一个简单的示例代码: 1. 首先,需要在Vue组件中定义一个方法来处理上传文件: ```javascript methods: { handleFileUpload(event) { const file = event.target.files\[0\]; const reader = new FileReader(); reader.onload = (e) => { const data = new Uint8Array(e.target.result); const workbook = XLSX.read(data, { type: 'array' }); const worksheet = workbook.Sheets\[workbook.SheetNames\[0\]\]; const jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1 }); // 在这里可以对jsonData进行处理,比如将数据保存到data中 this.data = jsonData; }; reader.readAsArrayBuffer(file); } } ``` 2. 在模板中添加一个文件上传的input元素,并绑定change事件: ```html <template> <div> <input type="file" @change="handleFileUpload"> <!-- 在这里可以使用this.data来回显Excel文件的数据 --> </div> </template> ``` 这样,当用户选择一个Excel文件后,文件将被读取并解析,数据将保存在Vue组件的data属性中,你可以根据需要对数据进行处理和回显。请注意,上述代码中使用了XLSX库来处理Excel文件,你需要在项目中引入该库。 #### 引用[.reference_title] - *1* *3* [Vue中如何导入并读取Excel数据](https://blog.csdn.net/a736755244/article/details/99568133)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Vue 读取excel文件的两种方式](https://blog.csdn.net/noeal/article/details/127995380)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值