Изменить размер строки файла php

У меня есть фрагмент кода, который я использую для хранения изображения в базе данных, иногда это также может быть PDF-файл.

Я беру строку и сохраняю ее прямо в базе данных. Я хочу изменить размер файла, а затем сохранить его в базе данных, чтобы не хранить файлы размером более 1 МБ.

Я хочу изменить его размер непосредственно перед сохранением.

Вот фрагмент кода

$filename =     'file'.$i;

                    $ImageName      = str_replace(' ','_',strtolower($_FILES[$filename]['name']));
                    $tmpName        = $_FILES[$filename]['tmp_name'];
                    $ImageSize      = $_FILES[$filename]['size'];                   
                    $ImageType      = $_FILES[$filename]['type']; //"image/png", image/jpeg etc.

                    $ImageExt       = substr($ImageName, strrpos($ImageName, '.'));
                    $ImageExt       = str_replace('.','',$ImageExt);
                    $ImageName      = preg_replace("/\.[^.\s]{3,4}$/", "", $ImageName);
                    $ImageName      = $ImageName.'.'.$ImageExt;

                    $fp             = fopen($tmpName, 'r');
                    $image          = fread($fp, filesize($tmpName));
                    fclose($fp);

Я не знаю, как изменить его размер.

Вы пытаетесь проверить размер файла? Если так, просто используйте filesize.

Script47 12.04.2018 15:24

Я знаю размер файла, хочу на лету уменьшить размер файла. Например, уменьшить, сжать как-то ... и сохранить в db.

Masnad Nihit 12.04.2018 15:25

..а что, если файл не сжимается? Вы не можете просто "изменить" размер файла ..

Devon 12.04.2018 15:27

@Devon, но я конвертирую файл в строку, разве нельзя будет ее сжать?

Masnad Nihit 12.04.2018 15:30

@ Script47 Я пробовал это, файл изображения не читается.

Masnad Nihit 12.04.2018 15:31
"иногда это может быть pdf" ... ну, это бросит вызов, если вы хотите автоматически оптимизировать изображение с помощью чего-то вроде библиотеки GD.
CD001 12.04.2018 15:31

@ CD001 У меня нет проблемы с хранением файла в базе данных на локальном компьютере, но когда я помещаю ее в heroku, моя база данных не принимает более 1 МБ, поэтому я задал эту проблему здесь и, связавшись с heroku dnt work, похоже, что там работают боты .

Masnad Nihit 12.04.2018 15:32

Почему бы вам просто не сохранить файл на сервере и не сохранить ссылку в базе данных?

Script47 12.04.2018 15:35

Да, следуйте совету @ Script47; никогда не храните файлы в базе данных, если вы можете этого избежать - большие двоичные объекты замедляют выполнение задач по обслуживанию базы данных (резервное копирование, ...)

Tom Regner 12.04.2018 15:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
9
107
0

Другие вопросы по теме