从android上传图像到mysql

时间:2011-02-14 14:53:28

标签: php android mysql

我唯一的问题是当我添加我的jpeg图像时,它在我的数据库中的类型是application / octet stream?

如何让它作为jpeg保留在我的数据库中?

1 个答案:

答案 0 :(得分:1)

处理上传时,将文件直接存储在数据库中通常不是一个好主意。尽管存在一种可以存储此类数据的字段,但您的数据库很快就会变得庞大而且查询速度也会变慢。

处理图片上传时,最好的办法是将图像保存为服务器上的文件,并将路径存储在数据库中。您将使用php的move_uploaded_file函数(查看doc),然后将您在$destination中使用的move_uploaded_file变量放入数据库中作为另一段文本。< / p>

编辑:如果您仍想将图像存储在数据库中,我会再次提醒您这是一个坏的,坏的,坏主意,您将不得不创建一个专用的系统检索数据并将其作为图像输出。例如,此文件将被称为getimage.php:

<?php 
    @mysql_connect("localhost","root","") or
        die('Database error');
    @mysql_select_db("upload");

    $id = isset($_GET['image_id') ? mysql_real_escape_string($_GET['image_id']) : false;

    if ($id === false)
        die('Invalid image id');

    $q = @mysql_query("SELECT img_data, mime_type FROM table_name WHERE id = ".$id);
    $row = mysql_fetch_array($q);

    if (!row)
        die('Image not found');

    header("Content-type: ".$row['mime_type']);
    header("Content-Transfer-Encoding: binary");
    die($row['img_data']);
?>

然后将其用作图像src:

<img src="getimage.php?image_id=1" />