У меня есть фрагмент кода, который я использую для хранения изображения в базе данных, иногда это также может быть 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);
Я не знаю, как изменить его размер.
Я знаю размер файла, хочу на лету уменьшить размер файла. Например, уменьшить, сжать как-то ... и сохранить в db.
..а что, если файл не сжимается? Вы не можете просто "изменить" размер файла ..
@Devon, но я конвертирую файл в строку, разве нельзя будет ее сжать?
@ Script47 Я пробовал это, файл изображения не читается.
@ CD001 У меня нет проблемы с хранением файла в базе данных на локальном компьютере, но когда я помещаю ее в heroku, моя база данных не принимает более 1 МБ, поэтому я задал эту проблему здесь и, связавшись с heroku dnt work, похоже, что там работают боты .
Почему бы вам просто не сохранить файл на сервере и не сохранить ссылку в базе данных?
Да, следуйте совету @ Script47; никогда не храните файлы в базе данных, если вы можете этого избежать - большие двоичные объекты замедляют выполнение задач по обслуживанию базы данных (резервное копирование, ...)






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