PHP獲取base64文件mime類型

  • 今天接到一個需求,前端以base64形式上傳圖片,php在接受到base64內容需要判斷文件的類型。
  • 對於文件PHP提供了一個函數來獲取文件的mime類型mime_content_type,但是現在接受到的是base64類型,官方沒有提供方法。官方提供了文件流的操作,則可以將base64轉成文件,再獲取文件的mime.示例如下:
    $file = public_path('1.jpeg');
    $aa = base64_encode(file_get_contents($file));

    $bb = base64_decode($aa);
//    $fc = iconv('windows-1250', 'utf-8', $aa);
    $handle=fopen("php://temp", "rw");
    fwrite($handle, $bb);
    fseek($handle, 0);
    echo mime_content_type($handle);

php://stdin, php://stdout 和 php://stderr

php://stdin 是隻讀的, php://stdout 和 php://stderr 是隻寫的。

php://output

php://output 是一個只寫的數據流, 允許你以 print 和 echo 一樣的方式 寫入到輸出緩衝區。

php://memory 和 php://temp

php://memory 和 php://temp 是一個類似文件 包裝器的數據流,允許讀寫臨時數據。 兩者的唯一區別是 php://memory 總是把數據儲存在內存中, 而 php://temp 會在內存量達到預定義的限制後(默認是 2MB)存入臨時文件中。 臨時文件位置的決定和 sys_get_temp_dir() 的方式一致。
php://temp 的內存限制可通過添加 /maxmemory:NN 來控制,NN 是以字節爲單位、保留在內存的最大數據量,超過則使用臨時文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章