blob地址转为file对象,js将blob转为file

http://www.itjxue.com  2023-01-05 04:44  来源:未知  点击次数: 

nodejs 怎么把buffer转换为file

如下读取文件的函数,Node.js 读取文件后,data是以二进制Buffer格式保存的,Blob格式的数据也是以二进制方式保存的,所以可以说data就是题主想要的 Blob binary data,不知道有没有解决题主的问题。

var fs = require('fs')

fs.readFile('/etc/passwd', function (err, data) {

if (err) throw err

console.log('isBuffer: ' + Buffer.isBuffer(data)) // isBuffer: true

console.log(data) //

})

java 怎样将File 对象转换为Blob

Blob...好像不是常用类型,是自定义的吧。

好吧,最简单的方法。

假设已知File类型的file1。

List testList=new ArrayList();

testList.add(file1);

Blob blob=(Blob)testList.get(0);

如果可以强转的话,以上代码均有效。换句话说只要Blob是File类型的子类以上代码就有效,否则报错,无法强转。

js---将base64的数据转换为文件

/**

* 将base64的数据转换成一个Blob对象

* @param {Object} b64Data base64数据

* @param {Object} contentType 数据类型

* @param {Object} sliceSize 分片大小

*/

function b64toBlob(b64Data, contentType, sliceSize) {

????let b = b64Data.toString();

? ? b64Data = b.split(',')[1];

? ? var byteCharacters =atob(b64Data);

? ? var byteArrays = [];

? ? for (let offset =0; offset byteCharacters.length; offset += sliceSize) {

????????var slice = byteCharacters.slice(offset, offset + sliceSize);

? ? ? ? var byteNumbers =new Array(slice.length);

? ? ? ? for (let i =0; i slice.length; i++) {

????????????byteNumbers[i] = slice.charCodeAt(i);

? ? ? ? }

????????var byteArray =new Uint8Array(byteNumbers);

? ? ? ? byteArrays.push(byteArray);

? ? }

????var blob =new Blob(byteArrays, {type: contentType});

? ? return blob;

}

/**

* 将Blob对象转换为file对象

* @param {Object} theBlob blob对象

* @param {Object} fileName 文件名称

*/

function blobToFile(theBlob,fileName) {

????theBlob.lastModifiedDate =new Date();

? ? theBlob.name = fileName;

? ? return theBlob;

}

// 创建一个reader

let reader =new FileReader();

// 将图片转成 base64 格式

reader.readAsDataURL(file);

/**

* 将base64转换为文件

* @param dataurl base64格式数据

* @param filename 文件名

* @param filetype 文件类型

* @returns {File} 二进制流文件

*/

function dataURLtoFile(dataurl,filename,filetype) {

????var arr = dataurl.split(","),

????bstr =atob(arr[1]),

? ? n = bstr.length,

? ? u8arr =new Uint8Array(n);

? ? while (n--) {

????????u8arr[n] = bstr.charCodeAt(n);

? ? }

????return new File([u8arr], filename, {

????????type: filetype

????});

}

如何将Blob对象转换成FormFile

高级浏览器通过FileAPI是可以支持的(检查一下这几个对象是否存在File、FileReader 、Blob),范例网上很多。 IE则可以通过ActiveX来实现

base64转file对象兼容性问题

1、直接将base64转file对象(有兼容问题)(ie edge 360兼容模式)

//将base64转换成file对象

function dataURLtoFile(dataurl, filename) {

var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],

? ? ? ? bstr =atob(arr[1]), n = bstr.length, u8arr =new Uint8Array(n);

? ? while(n--){

u8arr[n] = bstr.charCodeAt(n);

? ? }

return new File([u8arr], filename, {type:mime});

}

dataurl:base64

filename:文件名

2、将base转换成blob对象,再将blob对象转换成file对象。

//将base64转换为blob

function dataURLtoBlob(dataurl) {

var arr = dataurl.split(','),

? ? ? ? mime = arr[0].match(/:(.*?);/)[1],

? ? ? ? bstr =atob(arr[1]),

? ? ? ? n = bstr.length,

? ? ? ? u8arr =new Uint8Array(n);

? ? while (n--) {

u8arr[n] = bstr.charCodeAt(n);

? ? }

return new Blob([u8arr], {type: mime });

}

//将blob转换成file

function blobToFile(theBlob, fileName){

theBlob.lastModifiedDate =new Date();

? ? theBlob.name = fileName;

? ? return theBlob;

}

?blobToFile(dataURLtoBlob(dataurl), fileName);

dataurl:base64

filename:文件名

前端图片压缩优化工具conversion

image-conversion 是一个简单易用的 JS 图片转换工具,提供了多种 Image、Canvas、File 和 dataURL 之间的转换方法。

另外,image-conversion 可以指定大小来压缩图片。

1、将图像压缩到 200kb:

2、以 0.9 的质量压缩图像

image-conversion 提供了多种方法来实现 Image、Canvas、File 和 dataURL 之间的转换,如下:

1、imagetoCanvas(image[, config]) {Promise(Canvas)}

将图像对象转换为画布对象。

2、dataURLtoFile(dataURL[, type]) {Promise(Blob)}

将 dataURL 字符串转换为 File(Blob) 对象,相当于把画布的内容转换成blob,type可以设置最终图片的格式。

type的值可以为:"image/png", "image/jpeg", "image/gif"

3、compress(file, config) {Promise(Blob)}

压缩文件(Blob)对象。

4、compressAccurately(file, config) {Promise(Blob)}

根据大小压缩文件(Blob)对象。

5、canvastoDataURL(canvas[, quality, type]) {Promise(string)}

将 Canvas 对象转换为 dataURL 字符串,该方法可以进行压缩。

6、canvastoFile(canvas[, quality, type]) {Promise(Blob)}

将 Canvas 对象转换为 Blob 对象,此方法可以进行压缩。

7、dataURLtoImage(dataURL) {Promise(Image)}

将 dataURL 字符串转换为图像对象。

8、downloadFile(file[, fileName])

下载图片到本地。

9、filetoDataURL(file) {Promise(string)}

将 File(Blob) 对象转换为 dataURL 字符串。

10、urltoBlob(url) {Promise(Blob)}

通过图像 url 加载所需的 Blob 对象。

11、urltoImage(url) {Promise(Image)}

通过图片 url 加载所需的 Image 对象。

觉得效果不错的请帮忙加个关注点个赞,经常分享前端实用开发技巧

(责任编辑:IT教学网)

更多

推荐Windows服务器文章