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

藏色散人
リリース: 2023-04-11 10:54:02
転載
3312 人が閲覧しました

この記事では、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<div class="code" style="position:relative; padding:0px; margin:0px;"><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><div class="contentsignin">ログイン後にコピー</div></div>ここと <p>Base64 to File<strong> は実際には </strong>new File()</p> メソッド。上記の 2 番目のパラメータが渡されます。ここで修正されています。このパラメータはそれほど重要ではありません。関数は自分で変更できます。メソッドは提供されているため、直接使用できます。 <ul><li><p><code> 推奨学習: 「PHP ビデオ チュートリアル

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

関連ラベル:
ソース:juejin.im
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート