源文件名称->上传时间(Asia/Shanghai)->IP地址->浏览器信息->文件相对路径->图片的MD5 * $filePath 文件相对路径 * $sourceName 源文件名称 * $absolutePath 图片的绝对路径 * $fileSize 图片的大小 */ function write_log($filePath, $sourceName, $absolutePath, $fileSize, $from = "Web upload") { global $config; // 压缩图片 后压缩模式,不影响前台输出速度 if ($config['compress']) { if (!isAnimatedGif($absolutePath)) { require_once __DIR__ . '/compress/Imagick/class.Imgcompress.php'; $img = new Imgcompress($absolutePath, 1); $img->compressImg($absolutePath); // 释放 ob_flush(); flush(); } } // 图片违规检查 if ($config['checkImg']) { require_once APP_ROOT . '/config/api_key.php'; @checkImg($config['imgurl'] . $filePath); // 检查通过 $checkImg = "Images Passed"; } else { // 未开通 $checkImg = "Check Closed"; } $name = trim(basename($filePath), " \t\n\r\0\x0B"); // 当前图片名称 $log = array($name => array( 'source' => $sourceName, // 原始文件名称 'date' => date('Y-m-d H:i:s'), // 上传日期 'ip' => real_ip(), // 上传ip 'user_agent' => $_SERVER['HTTP_USER_AGENT'], // 浏览器信息 'path' => $filePath, // 文件相对路径 'size' => getDistUsed($fileSize), // 文件大小(格式化) 'md5' => md5_file($absolutePath), // 文件的md5 'checkImg' => $checkImg, // 图像审查 'from' => $from, // 图片上传来源 )); $logFileName = APP_ROOT . '/admin/logs/upload/' . date('Y-m') . '.php'; // 创建日志文件夹 if (!is_dir(APP_ROOT . '/admin/logs/upload/')) { mkdir(APP_ROOT . '/admin/logs/upload', 0755, true); } // 写入禁止浏览器直接访问 if (filesize($logFileName) == 0) { $php_exit = ''; file_put_contents($logFileName, $php_exit); } $log = json_encode($log, JSON_UNESCAPED_UNICODE); file_put_contents($logFileName, PHP_EOL . $log, FILE_APPEND | LOCK_EX); } /* for ($i = 0; $i < 100000; $i++) { write_log('/i/2021/11/13/12der8s.jpg', '/i/cache/2021_11_13_12der8s.jpg'); } */