нормальный exif пришёл к вам дом & bugs fixes

This commit is contained in:
themohooks 2024-10-11 21:54:40 +03:00
parent a8bac109c2
commit cd250cb0e5
5 changed files with 172 additions and 54 deletions

View file

@ -0,0 +1,19 @@
<?php
namespace App\Controllers\Api\Images\Comments;
use App\Services\{Auth, Router, GenerateRandomStr, DB, Json, EXIF};
use App\Models\{User, Vote, Comment};
class Load
{
public function __construct()
{
$comments = DB::query('SELECT * FROM entities_data WHERE photo_id=:pid', array(':pid' => explode('/', $_SERVER['REQUEST_URI'])[4]));
}
}

View file

@ -36,11 +36,12 @@ class Upload
$fileext = pathinfo($file, PATHINFO_EXTENSION);
}
$cstrong = True;
$filecdn = bin2hex(openssl_random_pseudo_bytes(64, $cstrong)) . '.' . $fileext['extension'];
$filecdn = bin2hex(openssl_random_pseudo_bytes(64, $cstrong)) . '.' . $fileext;
$folder = $location . $filecdn;
if (strtolower (NGALLERY['root']['storage']['type']) == "s3")
{
if (NGALLERY['root']['video']['upload']['cloudflare-bypass'] === true) {
if ($location === 'cdn/video') {
if (filesize($_SERVER['DOCUMENT_ROOT'].'/'.$location.$filecdn) >= 94371840) {
@ -76,8 +77,26 @@ class Upload
}
else
{
mkdir("{$_SERVER['DOCUMENT_ROOT']}/uploads/{$location}", 0777, true);
move_uploaded_file ($tmpname, "{$_SERVER['DOCUMENT_ROOT']}/uploads/{$folder}");
echo $tmpname;
$location = "your-location"; // Название локации
$folder = "{$location}/" . basename($tmpname); // Создаем корректное имя для папки с файлом
$uploadDir = "{$_SERVER['DOCUMENT_ROOT']}/uploads/{$location}"; // Полный путь к директории
// Создание директории, если она не существует
if (!is_dir($uploadDir)) {
mkdir($uploadDir, 0777, true);
}
// Путь к файлу, куда он должен быть перемещен
$destination = "{$uploadDir}/" . basename($tmpname);
// Перемещение файла
if (move_uploaded_file($tmpname, $destination)) {
echo "Файл успешно перемещен!";
} else {
echo "Ошибка при перемещении файла.";
}
$this->type = $type;
$this->src = "/uploads/{$folder}";

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -285,26 +285,99 @@ if ($photo->i('id') !== null) {
</td>
<style>
.header-container {
display: flex;
justify-content: space-between;
align-items: center;
}
.pp-item-header {
margin: 0;
}
.header-container img {
margin-right: 5px;
height: 20px;
}
</style>
<td id="pp-main-col">
<div id="pp-item-vdata">
<?php
if ($photo->content('type') != 'none' && json_decode($photo->i('exif'), true)['type'] != 'none') {
?>
<div class="p0" id="pp-item-exif">
<div class="header-container">
<h4 class="pp-item-header">Параметры съёмки</h4>
<!--img src="/static/img/flex_arrow_open2.png" height="100%"-->
</div>
<div class="pp-item-body">
<table class="linetable" id="exif">
<?php
$data = json_decode($photo->i('exif'), true);
$exif_translations = [
'FILE.FileName' => 'Имя файла',
'FILE.FileSize' => 'Размер файла',
'FILE.FileDateTime' => 'Дата и время файла',
'COMPUTED.MimeType' => 'Тип MIME',
'IFD0.Make' => 'Производитель камеры',
'IFD0.Model' => 'Модель камеры',
'IFD0.Orientation' => 'Ориентация',
'IFD0.XResolution' => 'Разрешение по X',
'IFD0.YResolution' => 'Разрешение по Y',
'IFD0.ResolutionUnit' => 'Единица разрешения',
'IFD0.Software' => 'Программное обеспечение',
'IFD0.DateTime' => 'Дата и время',
'IFD0.Artist' => 'Автор',
'IFD0.Copyright' => 'Авторские права',
'EXIF.ExposureTime' => 'Время экспозиции',
'EXIF.FNumber' => 'Диафрагма',
'EXIF.ExposureProgram' => 'Программа экспозиции',
'EXIF.ISOSpeedRatings' => 'ISO',
'EXIF.ExifVersion' => 'Версия EXIF',
'EXIF.DateTimeOriginal' => 'Дата и время оригинала',
'EXIF.DateTimeDigitized' => 'Дата и время оцифровки',
'EXIF.ShutterSpeedValue' => 'Значение выдержки',
'EXIF.ApertureValue' => 'Значение диафрагмы',
'EXIF.BrightnessValue' => 'Значение яркости',
'EXIF.ExposureBiasValue' => 'Экспокоррекция',
'EXIF.MaxApertureValue' => 'Максимальная диафрагма',
'EXIF.MeteringMode' => 'Режим экспозамера',
'EXIF.LightSource' => 'Источник света',
'EXIF.Flash' => 'Вспышка',
'EXIF.FocalLength' => 'Фокусное расстояние',
'EXIF.SubjectArea' => 'Область объекта',
'EXIF.FlashpixVersion' => 'Версия Flashpix',
'EXIF.ColorSpace' => 'Цветовое пространство',
'EXIF.PixelXDimension' => 'Размер изображения по X',
'EXIF.PixelYDimension' => 'Размер изображения по Y',
'EXIF.SensingMethod' => 'Метод съёмки',
'EXIF.SceneType' => 'Тип сцены',
'EXIF.ExposureMode' => 'Режим экспозиции',
'EXIF.WhiteBalance' => 'Баланс белого',
'EXIF.FocalLengthIn35mmFilm' => 'Фокусное расстояние для 35мм плёнки',
'EXIF.SceneCaptureType' => 'Тип съёмки',
'EXIF.GainControl' => 'Регулировка усиления',
'EXIF.Contrast' => 'Контрастность',
'EXIF.Saturation' => 'Насыщенность',
'EXIF.Sharpness' => 'Резкость',
'GPS.GPSLatitude' => 'Широта',
'GPS.GPSLongitude' => 'Долгота',
'GPS.GPSAltitude' => 'Высота',
'GPS.GPSTimeStamp' => 'Время GPS',
'GPS.GPSDateStamp' => 'Дата GPS'
];
foreach ($data as $key => $value) {
if ($key === 'FILE.FileDateTime') {
$value = Date::zmdate($value);
}
if (is_array($value)) {
$value = implode(', ', $value); // Convert array to a comma-separated string
if (!isset($exif_translations[$key])) {
continue;
}
if (is_array($value)) {
$value = implode(', ', $value);
}
$key = $exif_translations[$key] ?? $key;
echo '
<tr class="s11 h21">
@ -413,10 +486,14 @@ if ($photo->i('id') !== null) {
<?php } else { ?>
<div class="p0" id="pp-item-comments">
<center><p>Комментарии отключены пользователем или по усмотрению Администрации.</p></center></div>
<center>
<p>Комментарии отключены пользователем или по усмотрению Администрации.</p>
</center>
</div>
<?php } } ?>
<?php }
} ?>
</td>
</tr>
</tbody>

View file

@ -37,6 +37,9 @@ $user = new User(Auth::userid());
<!-- Подключение плагина Leaflet-3d-model -->
<script src="https://unpkg.com/leaflet-3d-model/dist/leaflet-3d-model.min.js"></script>
<script>
var pub_pid = 0;
</script>
<td class="main">
<h1>Предложить медиа на публикацию</h1>
<p>Ваш текущий индекс загрузки: <b><?= $user->i('uploadindex') ?></b></p>