保存数据库中的图像不能正常工作

时间:2013-11-14 14:32:33

标签: php mysql codeigniter cross-browser

我正在尝试创建跨平台应用程序,我想使用Codeigiter从数据库中的不同设备保存图像。我能够从设备中选择图像但我很困惑并且如何保存图像并从数据库中检索图像。

控制器

function addstatesoothing() {

    // write user data into the user database
    $config['upload_path'] = './';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '1000000';
    $config['overwrite'] = TRUE;
    $config['remove_spaces'] = TRUE;
    $config['encrypt_name'] = FALSE;

    $this->load->library('upload', $config);
    $image_path = $this->upload->data('soothing-img');
    $data = array(
        'soothing-img' => $image_path[full_path],
        'soothing-title' => $this->input->post('soothing-title'),
    );
    $this->favourite_db->addstatesoothing($data);
    $this->load->view('soothing');
}

模型

function addstatesoothing($data) {
    $this->load->database();
    $this->db->insert('soothing', $data);
    return $data;
}

查看

 <form method="post" action="addstatesoothing">
                <!--  <button data-theme="d" onclick="capturePhoto();">Capture Photo</button> -->
                <a data-theme="d" onclick="getPhoto(pictureSource.PHOTOLIBRARY);">Click to Add Pictures</a> 
                <img style="width:100%;" id="largeImage" src="" name="soothing-img"/> <br>
                <input type="text" name="soothing-title" id="Climbed a Mountain" value="" placeholder="Climbed a Mountain"/>
                <button data-theme="a">Save Memory</button>
                </form>

1 个答案:

答案 0 :(得分:1)

将图像保存在数据库中:

1 - 数据库中的图像字段应为BLOB类型。

2 - 从您的图片中获取文件内容:

$image = file_get_contents($_FILES['image']['tmp_name']);

3 - 将其保存在数据库

上的BLOB类型字段中
mysql_query("insert into images (image) values ('$image') ");

我不知道你是否使用另一种方法在数据库中保存数据,你的代码有点不同,但这就是这样,对吧?最后它会在数据库中插入一行,如果您有任何疑问,请在此处发表评论,但此时此刻很容易,火腿?现在让我们来回顾一下图像

首先,将图像内容存储在数据库中是一个真正的错误,但这不是问题吧?所以我不是这种方法的专家,但我是这样的:

创建另一个页面,如image.php,通过参数

接收一些id或图像名称

<强> image.php:

<?php

$id = $_GET['id']; 
$query = "SELECT image FROM images WHERE `id`=$id";
$result = mysql_query($query);

header("Content-type: image/jpeg"); //if is another format like .png change here


while($row = mysql_fetch_assoc($result))
{
    echo $row['image'];
}
?>

很好,你有一个很好的* .php文件可以像任何* .jpg文件一样响应图像,所以现在在你的HTML中调用它

<强> SomePage.html

<img src="image.php?id=12345" />

好的,一切都完成了,

但是为什么我说保存图片内容不好? SO fellas很棒,我们有很棒的材料来解释为什么在数据库中保存图像很糟糕!你可以检查一下,这是:

  1. Storing Images in DB - Yea or Nay?
  2. Store images in database or on file system