重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍前端的文件流flie是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
我们拥有10年网页设计和网站建设经验,从网站策划到网站制作,我们的网页设计师为您提供的解决方案。为企业提供成都网站制作、做网站、微信开发、小程序制作、手机网站制作设计、H5页面制作、等业务。无论您有什么样的网站设计或者设计方案要求,我们都将富于创造性的提供专业设计服务并满足您的需求。
领导提出一个问题,能不能不借助端的能力,实现本地分段读取数据分段显示。在没有特别大的性能要求或者明确提出要求的情况下一般是一次性加载所有的数据并渲染,但是如果数据量大或者手机性能不好的话就会有别的问题了。
听到这个的时候我是懵逼的,我啥也不知道,但是我同事实现了,写了一个简单的demo
假设只上传一个文件
上传文件目前前端最常见的是借助 input 的 type='file'(还有DataTransfer和HTMLCanvasElement可以实现,不介绍了)File
文件上传成功之后就会返回一个FileList 对象(event.target.files[0]里面包含了所有与文本相关的信息,包括文本流,文本流我们可能肉眼不可见)
console.log('[FileList 对象]:',event.target.files[0])
const fileDate = event.target.files[0] let text = await fileDate.slice(1, 10).text() console.log('[截取一段Blod对象]', fileDate.slice(1, 10)); console.log('[Blod对象转化为文本]', text);复制代码
具体实现我还么有写,思路到这里,日后补上
Blob
Blob/slice
File
Input/file
我记得很早之前写过不借助端的力量实现本地上传预览图片音频文件,那个时候就有提到过用过Blod对象,FileReader对象,还有createObjectURL,但是这一次恰好可以把这些都整合起来,一起说一下
var aBlob = new Blob( array, options );
参数,array 是一个由ArrayBuffer, ArrayBufferView, Blob, DOMString 等对象构成的 Array ,或者其他类似对象的混合体,它将会被放进 Blob。DOMStrings会被编码为UTF-8。options不介绍了
Blob 对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成 ReadableStream 来用于数据操作。
=> 这样说的话就是一段我们认识文本可以通过new Blod可以转化为Blod对象
那就要看哪些对象可以用他做搞一些事情
URL.createObjectURL() 她的参数就是Blod对象,用来创建一个url;可以结合a元素的download属性,实现一段日志或者文本的下载
复制文本 function onCopyHandle() { // 创建隐藏的可***链接 let content = ` name: sunseekers role: student houseName: shanghai url: https://github.com/sunseekers userAgent: ${navigator.userAgent} log:'这里是日志内容' `.trim(); let filename = 'logFiles.md' const eleLink = document.createElement('a'); eleLink.download = filename; eleLink.style.display = 'none'; const blob = new Blob([content]); eleLink.href = URL.createObjectURL(blob); // 字符内容转变成blob地址 document.body.appendChild(eleLink); eleLink.click(); // 触发点击 document.body.removeChild(eleLink); // 然后移除 Message.success('日志下载成功') };复制代码
图片可以用img标签显示也可以用canvas画,看需求
复制代码
FileReader
以上是前端的文件流flie是什么的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!