считыватель изображений codeigniter - PullRequest
0 голосов
/ 16 июля 2010

Здравствуйте, я пытаюсь использовать Codeigniter для создания простой галереи изображений пользователя, где пользователь может загрузить изображение, а затем оно будет автоматически отображаться на другой странице.

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

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

, если нет, каков наилучший практический способ сделать это?

ps новичок в структуре codeigniter, но довольно знакомый PHP mysql большое спасибо.

Ответы [ 3 ]

1 голос
/ 16 июля 2010

При загрузке данных с использованием класса загрузки вы можете получить информацию о загруженном файле с помощью следующего:

$this->upload->data();

Это вернет массив, содержащий имя, путь, размеры и т. Д.

0 голосов
/ 17 июля 2010

Как сказал Йорик: после загрузки файла вы можете получить доступ к пути к файлу с помощью метода $this->upload->data(). В частности, $this->upload->data('full_path'). После загрузки присвойте это переменной, затем отправьте ее модели или вставьте путь непосредственно в базу данных. Это будет полный путь к файлу изображения в вашей системе. Если вы хотите сохранить доступный путь http, вы можете сделать что-то вроде:

$this->load->helper('url');//load url helper if not autoloaded
$fileName = $this->upload->data('file_name');
$httpPath = base_url().'uploadFolder/'.$fileName;
$this->db->insert('image_table',array('path'=>$httpPath));

НТН

0 голосов
/ 16 июля 2010

Я не совсем знаком со структурой Codeigniter, но с точки зрения стандартного PHP / MySQL это можно сделать с помощью поля BLOB с MySQL.Просто fread () загруженного изображения (добавляет косую черту к контенту перед отправкой данных) и отправьте этот двоичный вывод в поле BLOB со стандартным запросом SQL.После этого вам, вероятно, потребуется создать отдельный файл для фактического обратного вызова изображения (PHP потребуется для восстановления изображения по данным).Ознакомьтесь с HTTP-заголовком «Content-Type:» и с тем, как он работает с изображениями.

Например, если вы сохранили изображение .jpeg в базе данных, вам нужно будет установить

header("Content-type: image/jpeg");
echo $query_string_array['Image_Data_Row'];

Это должно быть в своем собственном файле (или его части? Image = some_img), чтобы оно могло отображать только изображение.Но это основная концепция хранения изображения в базе данных;Вы просто разбиваете ее, храните информацию и восстанавливаете ее, когда вам это нужно.

С уважением,Деннис М.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...