blob地址转为file对象,js将blob转为file
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 对象。
觉得效果不错的请帮忙加个关注点个赞,经常分享前端实用开发技巧