Я надеюсь, что это легко, я использую mySQL и php для загрузки изображения в виде BLOB-типа с помощью этого кода:
if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0) { $fileName = $_FILES['userfile']['name']; $tmpName = $_FILES['userfile']['tmp_name']; $fileSize = $_FILES['userfile']['size']; $fileType = $_FILES['userfile']['type']; $fp = fopen($tmpName, 'r'); $content = fread($fp, filesize($tmpName)); $content = addslashes($content); fclose($fp); if(!get_magic_quotes_gpc()) { $fileName = addslashes($fileName); }
Все это прекрасно работает, вставляя в базу данных и все такое. Затем я хочу использовать SimpleImage: http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/
чтобы выполнить некоторые изменения размера и сжатия на изображении перед его загрузкой. Я не вижу, как сочетать:
include('SimpleImage.php'); $image = new SimpleImage(); $image->load($_FILES['userfile']['tmp_name']); $image->resizeToWidth(150); $image->output();
вinclude('SimpleImage.php'); $image = new SimpleImage(); $image->load($_FILES['userfile']['tmp_name']); $image->resizeToWidth(150); $image->output();
С моим существующим кодом я думаю, что я хочу сделать, чтобы $ content стал $ image, но я пробовал какое-то время и не могу найти способ сделать это. Любая помощь очень ценится.
Счастливые Рождества тем, кто любит Рождество и TIA для всех.
Вы выводите измененное изображение в браузер ( ::output()
), но вы не сохраняете его. Если вы хотите сохранить его в базе данных, сначала необходимо изменить временный файл, например, используя функцию ::save()
для SimpleImage
.
Рядом с этим вы пишете, вы хотите изменить размер изображения в браузере перед загрузкой. Этого нельзя сделать с PHP, но только с поддержкой JavaScript и браузеров. Кроме того, обработка загрузки на стороне PHP может отличаться. Но я не уверен, действительно ли вы на самом деле означали, что изображение будет изменено до загрузки.
Другая идея, которую я использовал, – использовать выходной буфер:
if (isset($_POST['upload']) && $_FILES['userfile']['size'] > 0) { $fileName = $_FILES['userfile']['name']; $tmpName = $_FILES['userfile']['tmp_name']; $fileSize = $_FILES['userfile']['size']; $fileType = $_FILES['userfile']['type']; $image = new SimpleImage(); $image->load($_FILES['userfile']['tmp_name']); $image->resizeToWidth(150); ob_start(); $image->output(); $content = ob_get_clean(); $content = addslashes($content); ...