img64.inc.php

サマリBase64エンコードされた画像を埋め込み表示
リビジョン1.0
対応バージョン1.5.3
投稿者M.Taniguchi
投稿日2020-04-25 (土) 07:41:30

概要

Base64エンコードされた画像を埋め込み表示するプラグイン。

ファイルをアップロードすることなく、画像をページに直接埋め込むことができます。
権限のない一般ユーザーでも任意の画像を掲載でき、添付ファイル管理の煩わしさからも解放されます。
画像のBase64エンコーダーは「画像 Base64 エンコード」等でインターネット検索して見つけてください。

PukiWiki 1.5.3/PHP 7.4 で動作確認済み。旧バージョンでもおそらく動くと思います。

使い方

#img64(画像のBase64エンコード文字列)

使用例

#img64(data:image/jpeg;base64,xxxxxxxxx...)

コード

img64.inc.php
(下記のコードをコピーして、plugin ディレクトリに img64.inc.php というファイル名で保存してください)

<?php
/*
PukiWiki - Yet another WikiWikiWeb clone.
img64.inc.php, v1.0 2020 M.Taniguchi
License: GPL v3 or (at your option) any later version

Base64エンコードされた画像を埋め込み表示するプラグイン。

ファイルをアップロードすることなく、画像をページに直接埋め込むことができます。
権限のない一般ユーザーでも任意の画像を掲載でき、添付ファイル管理の煩わしさからも解放されます。
画像のBase64エンコーダーは「画像 Base64 エンコード」等でインターネット検索して見つけてください。

【使い方】
#img64(画像のBase64エンコード文字列)

【使用例】
#img64(data:image/jpeg;base64,xxxxxxxxx...)
*/

define('PLUGIN_IMG64_MAXSIZE', 0);	// Base64文字列最大長(キロバイト)。0なら無制限

function plugin_img64_convert() {
	list($type, $code) = func_get_args();
	$code = $type . ',' . $code;

	if (PLUGIN_IMG64_MAXSIZE > 0) {
		$len = ceil(strlen($code) / 1024);
		if ($len > PLUGIN_IMG64_MAXSIZE) return '#img64 : Base64 string too long (' . number_format($len) . '&thinsp;KB / ' . number_format(PLUGIN_IMG64_MAXSIZE) . '&thinsp;KB)';
	}

	return '<div class="img_margin"><img src="' . htmlspecialchars($code) . '"/></div>';
}

ご注意

簡単に画像を掲載できる反面、いたずらで消すのもすげ替えるのも簡単です。
また、悪意なくちょっとした画像を貼り付けるだけでもウィキページファイル(およびバックアップファイル)のサイズが大きくなります。
こうした欠点を踏まえたうえで、有効に使える状況であればお使いください。

ライセンス

GPL v3


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-04-25 (土) 08:08:47
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u11. HTML convert time: 0.848 sec.

OSDN