ホームページ  >  記事  >  バックエンド開発  >  PHPにおけるBase64、Blob、Fileの相互変換方法について話しましょう

PHPにおけるBase64、Blob、Fileの相互変換方法について話しましょう

藏色散人
藏色散人転載
2023-03-16 15:19:413320ブラウズ

この記事では、php に関する関連知識をお届けします。主に、Base64、Blob、および File がどのように相互に変換されるかについて説明します。興味のある方は以下をご覧ください。皆様のお役に立てれば幸いです。

PHPにおけるBase64、Blob、Fileの相互変換方法について話しましょう

まえがき

写真を入手した際、形式を変換する必要がある場面に遭遇したので、録画して共有しました。それ。

#テキスト

1. 形式の基本概要

  • Base64

Base64 は、インターネット上で 8 ビット バイトコードを送信するための最も一般的なエンコード方式の 1 つです。Base64 は、64 の印刷可能な文字に基づいてバイナリ データを表現する方式です。

Base64 Document Entry

例:

PHPにおけるBase64、Blob、Fileの相互変換方法について話しましょう

##Blob
  • ##Blob
  • オブジェクトは、不変の生データ ファイルのようなオブジェクトを表します。そのデータはテキストまたはバイナリ形式で読み取ることも、データ操作のために
ReadableStream

に変換することもできます。 Blob ドキュメント エントリ

##ファイルPHPにおけるBase64、Blob、Fileの相互変換方法について話しましょう

  • ファイル (

    File
) インターフェイスはファイルに関する情報を提供し、Web ページの JavaScript がそのコンテンツにアクセスできるようにします。

ファイルドキュメントエントリ

変換方法を中心に、あまり多くは紹介しません。

PHPにおけるBase64、Blob、Fileの相互変換方法について話しましょう2. これら 3 つの形式を判断する方法

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 .ファイル オブジェクトであるかどうかを判断する

console.log(data instanceof File && !data instanceof Blob)   //ture  or  false

PS:

Blob と File の両方で、instanceof を使用して、対応するデータ型であるかどうかを判断します。 File オブジェクトは Blob オブジェクトでもあることに注意してください。 File は Blob を継承しているため、判定ロジックは自分で定義できます。

3. 形式間の変換

1. Base64 をファイルに変換する##

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 つのパラメータを渡す必要があります。1 つ目はデータ、2 つ目はカスタム ファイル名文字列です

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 });
    }
の場合、最後の文

return# を除き、基本的に transferFile

と同じです。
  • # #3.Blob to File<pre class="brush:php;toolbar:false">function blobToFile(blob) { return new File([blob], &amp;#39;screenshot.png&amp;#39;, { type: &amp;#39;image/jpeg&amp;#39; }) }</pre>
ここと

Base64 to File は実際には new File()

メソッド。上記の 2 番目のパラメータが渡されます。ここで修正されています。このパラメータはそれほど重要ではありません。関数は自分で変更できます。メソッドは提供されているため、直接使用できます。
  • 推奨学習: 「PHP ビデオ チュートリアル

以上がPHPにおけるBase64、Blob、Fileの相互変換方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.imで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。