0

因此,在我将图像文件的路径名存储在 mysql php 中之后,我很难检索要显示的图像。换句话说,当我执行“检查元素”时,会设置“src”值。但是,图像不显示,只剩下页面上的一个方框。我尝试使用已经为用户设置的默认个人资料图片,只是为了检查它是否是 php 赋值问题。但它不是。我还物理检查了文件内容,所有文件都上传得很好。唯一的问题是让它显示。

这是我的做法。

用于检查文件上传的php

error_reporting(E_ALL);

if($_SERVER["REQUEST_METHOD"]=="POST"&&isset($_POST["savePersonalInfo"]))
{
 if(isset($_FILES["ppFile"]))
 {
  $name=$_FILES["ppFile"]["name"];
  $tempName=$_FILES["ppFile"]["tmp_name"];
  $size=$_FILES["ppFile"]["size"];
  $type=$_FILES["ppFile"]["type"];

   if(($type=="image/jpg"||$type=="image/jpeg"||$type=="image/pjpeg")&&( ($size>0&&$size<=4000000000))
    {

     $dir="C:/xampp/htdocs/hcUsers/".$_SESSION['pin']."/profilePictures";

     $realPath=$dir."/".$name;

     if(is_dir($dir))
     {
       move_uploaded_file($tempName,$realPath);

       $_SESSION["ppPath"]=$realPath;

       $fileQuery="UPDATE `current users` SET `ppPath`='$realPath' WHERE `id`='".$_SESSION['pin']."' " ;

       checkConnect(mysql_query($fileQuery),"query of $fileQuery");

     }
     else
     {
       mkdir($dir,0777,true);

       move_uploaded_file($tempName, $realPath);

       $_SESSION["ppPath"]=$realPath;

       $fileQuery="UPDATE `current users` SET `ppPath`='$realPath' WHERE `id`='".$_SESSION['pin']."' " ;

       checkConnect(mysql_query($fileQuery),"query of $fileQuery"); 
     }
  }

    else
 {
   print "Error".$_FILES["ppFile"]["error"];
 }

}

?>

用于检索图像路径名并显示图像的 PHP

  <?php
    session_start();
    connectDatabase();
    $query="SELECT * FROM `current users` WHERE `email`='".$_SESSION['email']."' AND `      `password`='".$_SESSION['password']."' ";
    $result=mysql_query($query);
    checkConnect($result,"query of $query");
    $row=mysql_fetch_assoc($result);
    $_SESSION["pin"]=$row["id"];

    $imgPath="http://www.metalmusicarchives.com/images/covers/avariel-no-end-in-sight(demo)-20110719103608.jpg";

  if($row["ppPath"]!="")
  {
   $imgPath=$row["ppPath"];
   $_SESSION["ppPath"]=$imgPath;
  }  
?>

 <p><img src="<?php echo $imgPath ?>" alt="" type="image/jpeg" class="profilePic" >

最后设置了'src'值,但图像不会显示。

请帮忙。

4

1 回答 1

0

这是您的代码的一部分:

$dir="C:/xampp/htdocs/hcUsers/".$_SESSION['pin']."/profilePictures";

$realPath=$dir."/".$name;

if(is_dir($dir))
{
    move_uploaded_file($tempName,$realPath);

    $_SESSION["ppPath"]=$realPath;

    $fileQuery="UPDATE `current users` SET `ppPath`='$realPath' WHERE `id`='".$_SESSION['pin']."' " ;

这样,当从数据库中检索 ppPath 并尝试在浏览器中显示它时,src图像的 将指向C:/xampp/etc. 那是行不通的,因为您的访问者无权访问该目录。从浏览器的角度来看,你也不是。将其更改为相对 URL。

此外,我看到很多重复的代码,并且您正在滥用会话变量,但这是题外话。

于 2011-09-05T17:01:21.150 回答