duan00529 2014-03-12 12:27 采纳率: 100%
浏览 39
已采纳

图像无法使用路径从数据库中获取

I'm trying to upload and fetch images from database using path. Upload process working perfectly. But, I cannot able to fetch image from db. I've tried print_r($row['image']);. I'm getting the path like this C:/xampp/htdocs/xampp/htdocs/www/images/0d13808ad672c2713d306efbb0e42918. I don't know why this code doesn't fetch image from db?

fetch.php

        <?php
            include('config.php');
            ini_set('display_startup_errors',1); a
            ini_set('display_errors',1);
            error_reporting(-1);

            try
            {
                  $stmt = $conn->prepare("SELECT * FROM imgdb WHERE id = 3");
                  $conn->errorInfo();
                  // $stmt->bindParam('1', $imgid, PDO::PARAM_INT);
                  $stmt->execute();

                  // $path = "/xampp/htdocs/www/images/";
                  // $imgpath = $_SERVER['DOCUMENT_ROOT'].$path;
                   while($row = $stmt->fetch(PDO::FETCH_ASSOC))
                    {
                        echo "<img src=".$row['image']." height='100' width='100'/>"; 
                        print_r($row['image']);
                    }
            } 
            catch (PDOException $e) 
            {
                 echo 'Database Error'.$e->getMessage();
            }
        ?>

upload.php

<?php

    ini_set('display_startup_errors',1);
    ini_set('display_errors',1);
    error_reporting(-1);

      include('config.php');

      if ($_FILES["file"]["error"] > 0)
      {
          echo "Error: " . $_FILES["file"]["error"] . "<br>";
      }
      else
      {
//          echo "Upload: " . $_FILES["file"]["name"] . "<br>";
//          echo "Type: " . $_FILES["file"]["type"] . "<br>";
//          echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
//          echo "Stored in: " . $_FILES["file"]["tmp_name"];
      }


      $filename  = basename($_FILES['file']['tmp_name']);
      $newname = md5($filename);

      $final_save_dir = '/xampp/htdocs/www/images/'.$newname ;
        if(move_uploaded_file($_FILES['file']['tmp_name'], $final_save_dir . $_FILES['file']['name'])) 
        {
            echo "Uploaded";
        } 
        else 
        {
           echo "File was not uploaded";
        }

      $imgid = $_SERVER['DOCUMENT_ROOT'].$final_save_dir;

      try
      {
          $stmt = $conn->prepare("INSERT INTO imgdb ( image ) VALUES ( ? ) ");
          $stmt->bindParam('1', $imgid, PDO::PARAM_STR);
          $conn->errorInfo();
          $stmt->execute();
      }
      catch (PDOException $e) 
      {
          echo 'Database Error'.$e->getMessage();
      }
?>
  • 写回答

4条回答 默认 最新

  • douqian2957 2014-03-12 13:04
    关注

    Try this and compare with yours, I don't know if it works because I didn't tested, but it should.

    upload.php

    include('config.php');
    
    if ($_FILES["file"]["error"] > 0 )
    {
        echo "Error: " . $_FILES["file"]["error"] . "<br>";
    }
      else
    {
        $filename  = basename($_FILES['file']['tmp_name']);
        $ext = pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);
    
        $new_file_name = md5($filename).'.'.$ext;
    
        $final_save_dir = $_SERVER['DOCUMENT_ROOT'].DS.'www'.DS.'images'.DS;
        if(move_uploaded_file($_FILES['file']['tmp_name'], $final_save_dir . $new_file_name)) 
        {
            echo "Uploaded";
        } 
        else 
        {
           echo "File was not uploaded";
        }
    
        try
        {
            $stmt = $conn->prepare("INSERT INTO imgdb ( image ) VALUES ( ? ) ");
            $stmt->bindParam('1', $new_file_name, PDO::PARAM_STR);
            $conn->errorInfo();
            $stmt->execute();
        }
        catch (PDOException $e) 
        {
          echo 'Database Error'.$e->getMessage();
        }
    }
    

    fetch.php

    <?php
    include('config.php');
    ini_set('display_startup_errors',1); 
    ini_set('display_errors',1);
    error_reporting(-1);
    
    try
    {
          $stmt = $conn->prepare("SELECT * FROM imgdb WHERE id = 3");
          $conn->errorInfo();
          $stmt->execute();
    
           while($row = $stmt->fetch(PDO::FETCH_ASSOC))
            {
                echo "<img src='images/".$row['image']."' height='100' width='100'/>"; 
            }
    } 
    catch (PDOException $e) 
    {
         echo 'Database Error'.$e->getMessage();
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿