codeigniter 在数据库中保存图像无法正常工作

qnyhuwrf  于 2022-12-07  发布在  其他
关注(0)|答案(2)|浏览(136)

我正在尝试创建一个跨平台应用程序,我想使用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>
syqv5f0l

syqv5f0l1#

要将图像保存到数据库中:
1 -数据库中的图像字段应为BLOB类型。
2 -从映像中获取文件内容:

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

3 -将其保存在数据库的BLOB类型字段中

mysql_query("insert into images (image) values ('$image') ");

我不知道你是否使用另一种方法来保存数据库中的数据,你的代码是有点不同,但这是方式,对吗?最后它将是一行插入数据库,如果你有任何疑问,在这里评论,但在这一点上是所有容易的,火腿?现在让我们去检索图像
首先,在数据库中存储图像内容是一个真实的的错误,但这不是问题所在吗?所以我不是这种方法的Maven,但我会:
创建另一个类似image.php的页面,通过参数接收一些id或图像名称

图片.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中调用它

某个页面.html

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

好了,都弄好了,
但是**为什么我告诉保存图像内容是坏的?:**所以小伙子们真棒,我们有惊人的材料来解释为什么保存图像在数据库中是坏的!你可以检查它,这里是:

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

hrirmatl2#

这个问题的第一个问题是您的表单无法上传图像,因为您没有使用多部分表单数据
你可以这样试试

<form enctype="multipart/form-data"></form>

相关问题