
发表日期: 2021-05-10 15:10:33 浏览次数:147
淮滨网络公司哪家好【淮滨企业网站百度SEO推广公司】淮滨做网站开发价格、淮滨淘宝店铺开店装修设计运营、公司网站制作方案流程改版维护费用、淮滨高端企业网站页面制作设计专业公司需要多少钱

淮滨县,河南省信阳市下辖县,位于信阳市东北部,地处东经115°11′—115°35,北纬32°15′—32°38'之间,总面积1209平方公里,地处北亚热带与暖温带气候过渡地带。 [1] 截至2020年6月,淮滨县辖4个街道、5个镇、10个乡, [2] 县政府驻滨湖街道。 [3] 截至2019年末,淮滨县总人口78.47万。 [4]
淮滨因位于淮河之滨而得名。1952年8月经国务院批准,正式设立淮滨县。 [1] 1962年10月20日,合并于息县的原淮滨行政区域和固始县的原淮滨县期思、张庄两个区的行政区域为淮滨县的行政区域。 [5] 2019年3月,淮滨县入选第一批革命文物保护利用片区分县名单。 [6] 淮滨县产业集聚区是河南省首批确定的175个产业集聚区之一。造船业是淮滨县传统优势产业,也是纳入河南省“十一五”规划予以重点支持的装备制造业。 [7] 2020年2月26日,河南省人民政府批准淮滨县退出贫困县,正式脱贫摘帽。 [8] 淮滨县境内有期思古城、东西湖风景区、淮滨淮南湿地自然保护区等著名景点。
2019年,淮滨县生产总值225.92亿元,增长7.9%。其中,第一产业增加值41.26亿元,增长1.8%;第二产业增加值91.70亿元,增长8.9%;第三产业增加值92.97亿元,增长10.7%,三次产业结构18.3:40.6:41.1。 [4]
今天介绍一下文件的二进制家族js,file,base64,File,Blob,ArrayBuffer。 案例,假如有一个需求,我们通过解析等方式拿到了文件的二进制uint8array 或者base64或者blob,我们如何通过ajax提交给后端接口呢?
1. file对象转base64
let reader = new FileReader(); reader.readAsDataURL(file[0]) console.log(reader)
2. base64 转成blob 上传
function dataURItoBlob(dataURI) {
var byteString = atob(dataURI.split(',')[1]);
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
var ab = new ArrayBuffer(byteString.length);
var ia = new Uint8Array(ab);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
return new Blob([ab], {type: mimeString}); }3. blob 转成ArrayBuffer
let blob = new Blob([1,2,3,4])let reader = new FileReader();reader.onload = function(result) {
console.log(result);}reader.readAsArrayBuffer(blob);4. buffer 转成blob
let blob = new Blob([buffer])
5. base64 转 file
const base64ConvertFile = function (urlData, filename) { // 64转file
if (typeof urlData != 'string') {
this.$toast("urlData不是字符串")
return;
}
var arr = urlData.split(',')
var type = arr[0].match(/:(.*?);/)[1]
var fileExt = type.split('/')[1]
var bstr = atob(arr[1])
var n = bstr.length var u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], 'filename.' + fileExt, {
type: type });} const config = {
headers:{'Content-Type':'multipart/form-data'}
}
let fileObj= base64ConvertFile(base64文件,文件名称)
let formdata = new FormData()
formdata.append('file',fileObj,名称)
request.uploadImage(formdata,'', config).then(res=>{}) // 封装的axiso请求首先介绍二进制数组
二进制数组由三个对象组成。
(1)ArrayBuffer对象:代表内存之中的一段二进制数据,可以通过“视图”进行操作。“视图”部署了数组接口,这意味着,可以用数组的方法操作内存。
(2) TypedArray对象:用来生成内存的视图,通过9个构造函数,可以生成9种数据格式的视图,比如Uint8Array(无符号8位整数)数组视图, Int16Array(16位整数)数组视图, Float32Array(32位浮点数)数组视图等等。
(3)DataView对象:用来生成内存的视图,可以自定义格式和字节序,比如第一个字节是Uint8(无符号8位整数)、第二个字节是Int16(16位整数)、第三个字节是Float32(32位浮点数)等等。
ArrayBuffer对象代表储存二进制数据的一段内存,它不能直接读写,只能通过视图(TypedArray视图和DataView视图)来读写,视图的作用是以指定格式解读二进制数据。
var buffer = new ArrayBuffer(12);var x1 = new Int32Array(buffer);x1[0] = 1;var x2 = new Uint8Array(buffer);x2[0] = 2;x1[0] // 2
二进制的文件形式可以出现在如下场景中:
一、AJAX
传统上,服务器通过AJAX操作只能返回文本数据,即responseType属性默认为text。XMLHttpRequest第二版XHR2允许服务器返回二进制数据,如下:
var xhr = new XMLHttpRequest();xhr.open('GET', someUrl);xhr.responseType = 'arraybuffer';xhr.onload = function () {
var let arrayBuffer = xhr.response;
// ···};xhr.send();二、Canvas
网页Canvas元素输出的二进制像素数据,就是类型化数组。
var canvas = document.getElementById('myCanvas');var ctx = canvas.getContext('2d');var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);var uint8ClampedArray = imageData.data;三、WebSocket
WebSocket可以通过ArrayBuffer,发送或接收二进制数据。
var socket = new WebSocket('ws://127.0.0.1:8081');socket.binaryType = 'arraybuffer';// Wait until socket is opensocket.addEventListener('open', function (event) {
// Send binary data
var typedArray = new Uint8Array(4);
socket.send(typedArray.buffer);});// Receive binary datasocket.addEventListener('message', function (event) {
var arrayBuffer = event.data;
// ···});四、Fetch API
Fetch API取回的数据,就是ArrayBuffer对象。
fetch(url).then(function(request){
return request.arrayBuffer()}).then(function(arrayBuffer){
// ...});五、File API
如果知道一个文件的二进制数据类型,也可以将这个文件读取为ArrayBuffer对象。
var fileInput = document.getElementById('fileInput');var file = fileInput.files[0];var reader = new FileReader();reader.readAsArrayBuffer(file);reader.onload = function () {
var arrayBuffer = reader.result;
// ···};1、File对象从input选择或者拖拽中产生 files[0]
File对象继承Blob,是种特殊的blob
2、blob 是二进制存储容器
window.URL.createObjectURL(blob)可以把一个blob转成blobURL,用作图片显示,文件下载(不能再服务器上存储,只能在浏览器使用)
blob.slice 分段上传
3、FileReader 转成文本、ArrayBufffer、DATA url等类型
4、ArrayBufffer 是原始存储二进制的缓冲区,相当于定义了一块空间
5、通过TypeArray 生成内存的视图,代表确定类型的二进制数据
6、DataView也是生成视图的,可以自定义格式和字节序
淮滨网络公司哪家好【淮滨企业网站百度SEO推广公司】淮滨做网站开发价格、淮滨淘宝店铺开店装修设计运营、公司网站制作方案流程改版维护费用、淮滨高端企业网站页面制作设计专业公司需要多少钱
服务热线
顶部
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: http://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878