Codeigniter - файлы должны быть в одной папке

0

В настоящее время я использую imagecreatefromjpeg() для добавления текста в изображение. Я работаю со всеми моими файлами в одной папке, однако я использую CodeIgniter, поэтому мои файлы распространяются по разным папкам.

Какое обходное решение для этого?

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

См. Ошибку

Возникла ошибка PHP

Уровень важности: предупреждение

Сообщение: imagettftext(): Не удалось найти/открыть шрифт

Имя файла: views/coupon.php

Номер строки: 30

См. Код

<?php
//Report any errors
ini_set("display_errors", "1");
error_reporting(E_ALL);
//Set the Content Type
      // header('Content-type: image/jpeg');

      // Create Image From Existing File
      $jpg_image = imagecreatefromjpeg('http://localhost:8888/game/rcw/assets/couponWrite.jpg');


      // Allocate A Color For The Text
      $white = imagecolorallocate($jpg_image, 155, 155, 155);

      // Set Path to Font File
      $font_path = 'http://localhost:8888/game/rcw/application/views/Arial.ttf';

      // Set Text to Be Printed On Image
      $text = "IGL" . rand(55555,99999);

      // Print Text On Image
      imagettftext($jpg_image, 25, 0, 75, 300, $white, $font_path, $text);

      // Send Image to Browser
      imagejpeg($jpg_image);

      // Clear Memory
      imagedestroy($jpg_image);


 ?>
  • 0
    Какой код вы используете, с какой ошибкой вы сталкиваетесь? Больше информации.
  • 0
    К сожалению об этом @ Chilion, код и ошибка были добавлены
Показать ещё 1 комментарий
Теги:
codeigniter
directory-structure

1 ответ

0
Лучший ответ

Все, что вам нужно сделать, - это получить доступ к файлу изображения, используя его путь, либо относительно пути к файлу PHP, который его обрабатывает, либо, точнее, его абсолютный путь. Например, скажем, ваш код находится в контроллере, в application/controllers/myImageProcessor.php и вы хотите загрузить файл, хранящийся в application/input-files, записать что-то на нем и сохранить измененную версию в public/images. Вы создаете пути к файлам следующим образом:

// input path is '../input-files/'
$inputPath = dirname(__FILE__).'/input-files/';            // this is an absolute path
$inputName = 'original.jpg';

// output path is '../../public/images/'
$outputPath = dirname(dirname(__FILE__)).'/public/images/';
$outputName = 'modified.jpg';

// load image from file
$img = imagecreatefromjpeg($inputPath.$inputName);

// ...
// write on $img here...
// ...

// save it to other file
imagejpeg($img, $outputPath.$outputName, 95);

Не рекомендуется хранить все файлы в одном каталоге. Кроме того, не смешивайте код с HTML/JS/CSS и никогда, никогда не помещайте в те же исходные файлы каталога с сгенерированными файлами или файлами, полученными из внешних источников (например, загруженными пользователями).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню