Maison > Article > développement back-end > Parlons des méthodes de conversion mutuelle de Base64, Blob et File en PHP
Cet article vous apporte des connaissances pertinentes sur php. Il parle principalement de la façon dont Base64, Blob et File sont convertis les uns aux autres ? Les amis intéressés peuvent jeter un œil ci-dessous. J'espère que cela sera utile à tout le monde.
Avant-propos
Lors de la prise de photos, j'ai rencontré une situation où je devais convertir le format, alors je l'ai enregistré et partagé.
Texte
1. Introduction de base au format
Base64
Base64 est l'une des méthodes de codage les plus courantes pour transmettre du bytecode 8 bits sur Internet. . Une méthode de représentation de données binaires avec des caractères imprimables Entrée de document Base64
Par exemple
Blob
Blob
représente un fichier de données original immuable. comme objet. Ses données peuvent être lues au format texte ou binaire, ou converties en ReadableStream
pour les opérations sur les données. Entrée de document BlobBlob
对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成 ReadableStream
来用于数据操作。 Blob文档入口
举个例子
File
文件(File
)接口提供有关文件的信息,并允许网页中的 JavaScript 访问其内容。 File文档入口
举个例子
就不过多介绍了,主要来讲如果转换。
1.判断是否为Base64字符串
// 判断是否为base64格式字符串 function isBase64(str) { //正则表达式判断 var reg = /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*?)\s*$/i; return reg.test(str) //返回 true or false }
2.判断是否为Blob对象
console.log(data instanceof Blob) //ture or false
3.判断是否为File对象
console.log(data instanceof File && !data instanceof Blob) //ture or false
PS:
Blob和File都用instanceof来判断是否为对应类型数据
有一点需要注意,File对象也是Blob对象 ,因为File继承于Blob,所以其中的判断逻辑可以自己定义
三、格式之间的转换
1.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 }); }
2.Base64转换为Blob
function dataURLtoBlob(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 Blob([u8arr], { type: mime }); }
File
基本一样,就最后一句return
不一样3.Blob转File
function blobToFile(blob) { return new File([blob], 'screenshot.png', { type: 'image/jpeg' }) }
这里和Base64转File
其实用的都是new File()
file
🎜) Interface fournit des informations sur les fichiers, et permettre à l'interface javourée dans les pages Web d'accès à son contenu. Entrée du document de fichier🎜Fichier
, à l'exception de la dernière phrase. retour
qui est différent🎜 🎜🎜🎜3. Blob vers Fichier🎜🎜rrreeeBase64 vers Fichier
sont en fait le nouveau Fichier() Méthode
, la méthode ci-dessus Les deux paramètres sont passés. Ils sont corrigés ici. Ce paramètre n'est pas très important. Vous pouvez modifier la fonction par vous-même. Les méthodes ont été fournies, vous pouvez donc l'utiliser directement. 🎜🎜🎜🎜Apprentissage recommandé : "🎜Tutoriel vidéo PHP🎜"🎜🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!