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 に答える