codeigniter图像阅读器

时间:2010-07-15 20:32:43

标签: php mysql codeigniter

您好我正在尝试使用Codeigniter构建一个简单的用户图片库,用户可以在其中上传图片,然后这将自动显示在另一页上。

我将图像上传完成,作为Codeigniter上的用户指南的解释,这可以很好地将图像转储到根目录中的文件夹中,只是将URL放在一个表区域并回显这个工作,但这不会覆盖所有图像名。

我想知道的是有一种方法可以读取用户上传的内容并将其自动存储在数据库中以便回显。

如果不是最好的做法是什么?

ps是codeigniter框架的新手,但非常感谢PHP mysql。

3 个答案:

答案 0 :(得分:1)

使用上传课程上传数据时,您可以使用以下方法检索有关上传文件的信息:

$this->upload->data();

这将返回一个包含名称,路径,尺寸等的数组

答案 1 :(得分:0)

我对Codeigniter框架并不完全熟悉,但从标准的PHP / MySQL角度来看,这可以使用MySQL的BLOB字段来完成。只需fread()上传的图像(在发送数据之前将内容添加到内容中)并使用标准SQL查询将该二进制输出发送到BLOB字段。之后,您可能需要创建一个单独的文件来实际调用图像(PHP将需要从数据重建图像)。熟悉HTTP-HEADER“内容类型:”以及它如何用于图像。

例如,如果您将.jpeg图像存储到数据库,则需要设置

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

这需要在自己的文件中(或文件的一部分?image = some_img),因此它只能显示 图像。但这是将图像存储到数据库的基本概念;你只需将其分解,存储信息,并在需要时重建信息。

的问候,
丹尼斯M。

答案 2 :(得分:0)

正如Yorick所提到的:上传文件后,您可以使用$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));

HTH