从/ images获取图像

时间:2013-04-10 15:07:24

标签: php sql path

我有这个代码将数据上传到mysql(包括图像):

<?
require("connect.php");

$gravar_descricao = $_POST['descricao'];
$gravar_observacoes = $_POST['observacoes'];
$gravar_imagem01 = $_FILES['imagem01'];
$gravar_imagem02 = $_FILES['imagem02'];
$gravar_imagem03 = $_FILES['imagem03'];
$gravar_imagem04 = $_FILES['imagem04'];
$gravar_imagem05 = $_FILES['imagem05'];
$gravar_imagem06 = $_FILES['imagem06'];

  if (!empty($gravar_imagem01["name"])) {

  preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $gravar_imagem01["name"], $ext);

$nome_imagem = md5(uniqid(time())) . "." . $ext[1];

$caminho_imagem = "../../images/" . $nome_imagem;

  move_uploaded_file($gravar_imagem01["tmp_name"], $caminho_imagem);

}


$sqlinsert = "INSERT INTO tb_carros (id_carro, descricao, observacoes, imagem01, imagem02, imagem03, imagem04, imagem05, imagem06) 
            value ('', '$gravar_descricao', '$gravar_observacoes', '$gravar_imagem01', '$gravar_imagem02', '$gravar_imagem03', '$gravar_imagem04', '$gravar_imagem05', '$gravar_imagem06')";

mysql_query($sqlinsert) or die ("Nao foi possivel salvar os dados");

  echo "Dados inseridos com sucesso";

?>

正如您所看到的,我正在使用代码中的imagem01来获取我想要的结果。然后我将使用其他图像。

该代码工作正常,并将image01保存在../../images中。但我想在carro_admin.php(代码)中显示此图片:

<?

require("db/connect.php");

session_start();
     if(isset($_SESSION['logged_in'])) {
           session_start();
     } else {
           header("location:index.php");   
     }

$sql = "SELECT * FROM tb_carros";

$limite = mysql_query("$sql");

$dados = array();
while ($sql = mysql_fetch_array($limite) ) {
    $dados[] = $sql;
}
?> 
....
<div class="fotoResumo">
    <img src="../images/<?=$row['imagem01'] ?>" /> <!-- the carro_admin.php is one level up of the insert code -->
</div><!-- END of fotoResumo -->

<div class="dadosResumo">
     Descricao: <?=$row['descricao']?><br /><br />
     Observacoes:   <?=$row['observacoes']?><br /><br />
</div><!-- END of dadosItem -->

来自descricaoobservacoes的数据正常加载,但imagem01显示了损坏的图片图标。怎么了?

2 个答案:

答案 0 :(得分:0)

您没有在数据库中插入图片名称,而是插入“数组”一词。

您目前正在$gravar_imagem01插入imagem01,等于实际代码中的$_FILES['imagem01']

$gravar_imagem01['name'] 字段中插入 imagem01 ,因为您想要检索图片的名称,以便稍后使用{{ 1}}。

注意:由于您无法在SQL查询中使用<img src="../images/<?=$row['imagem01'] ?>" />,我建议您先将其存储在临时变量中,然后在查询中使用它。

答案 1 :(得分:0)

我解决了它们。这是最终的代码:

<?

            require("connect.php");

            $gravar_carro = $_POST['carro'];
            $gravar_valor = $_POST['valor'];
            $gravar_ano = $_POST['ano'];
            $gravar_km = $_POST['km'];
            $gravar_cor = $_POST['cor'];
            $gravar_portas = $_POST['portas'];
            $gravar_combustivel = $_POST['combustivel'];
            $gravar_cambio = $_POST['cambio'];
            $gravar_final_placa = $_POST['final_placa'];
            $gravar_carroceria = $_POST['carroceria'];
            $gravar_descricao = $_POST['descricao'];
            $gravar_observacoes = $_POST['observacoes'];
            $gravar_imagem01 = $_FILES['imagem01'];
            $gravar_imagem02 = $_FILES['imagem02'];
            $gravar_imagem03 = $_FILES['imagem03'];
            $gravar_imagem04 = $_FILES['imagem04'];
            $gravar_imagem05 = $_FILES['imagem05'];
            $gravar_imagem06 = $_FILES['imagem06'];



                        preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $gravar_imagem01["name"], $ext);
                        preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $gravar_imagem02["name"], $ext);
                        preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $gravar_imagem03["name"], $ext);
                        preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $gravar_imagem04["name"], $ext);
                        preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $gravar_imagem05["name"], $ext);
                        preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $gravar_imagem06["name"], $ext);


                        $nome_imagem01 = md5(uniqid(time())) . "." . $ext[1];
                        $nome_imagem02 = md5(uniqid(time())) . "." . $ext[1];
                        $nome_imagem03 = md5(uniqid(time())) . "." . $ext[1];
                        $nome_imagem04 = md5(uniqid(time())) . "." . $ext[1];
                        $nome_imagem05 = md5(uniqid(time())) . "." . $ext[1];
                        $nome_imagem06 = md5(uniqid(time())) . "." . $ext[1];


                        $caminho_imagem01 = "../../images/" . $nome_imagem01;
                        $caminho_imagem02 = "../../images/" . $nome_imagem02;
                        $caminho_imagem03 = "../../images/" . $nome_imagem03;
                        $caminho_imagem04 = "../../images/" . $nome_imagem04;
                        $caminho_imagem05 = "../../images/" . $nome_imagem05;
                        $caminho_imagem06 = "../../images/" . $nome_imagem06;

                        move_uploaded_file($gravar_imagem01["tmp_name"], $caminho_imagem01);
                        move_uploaded_file($gravar_imagem02["tmp_name"], $caminho_imagem02);
                        move_uploaded_file($gravar_imagem03["tmp_name"], $caminho_imagem03);
                        move_uploaded_file($gravar_imagem04["tmp_name"], $caminho_imagem04);
                        move_uploaded_file($gravar_imagem05["tmp_name"], $caminho_imagem05);
                        move_uploaded_file($gravar_imagem06["tmp_name"], $caminho_imagem06);



                        $sqlinsert = "INSERT INTO tb_carros (id_carro, carro, valor, ano, km, cor, portas, combustivel, cambio, final_placa, carroceria, descricao, observacoes, imagem01, imagem02, imagem03, imagem04, imagem05, imagem06)
                        value ('', '$gravar_carro', '$gravar_valor', '$gravar_ano', '$gravar_km', '$gravar_cor', '$gravar_portas', '$gravar_combustivel', '$gravar_cambio', '$gravar_final_placa', '$gravar_carroceria', '$gravar_descricao', '$gravar_observacoes', '$nome_imagem01', '$nome_imagem02', '$nome_imagem03', '$nome_imagem04', '$nome_imagem05', '$nome_imagem06')";


                        mysql_query($sqlinsert) or die ("Nao foi possivel salvar os dados");


                        echo "Dados inseridos com sucesso";

            ?>