【问题标题】:Can't display image I uploaded in PHP无法显示我在 PHP 中上传的图像
【发布时间】:2019-09-29 01:59:57
【问题描述】:

我正在尝试上传图片并在上传后显示,上传部分工作正常但图片无法显示。 有答案吗?

代码:

<!DOCTYPE html>
<html>
    <body>
    <?php
        echo <<<_END

            <form method="post" action="upload.php" enctype="multipart/form-data">
                <input type="file" name="fupload" size="100000" accept="image/*">
                <input type="submit" name="upload" value="Upload">
            </form>
_END;

        if($_FILES){
            $name = $_FILES['fupload']['name'];
            move_uploaded_file($name = $_FILES['fupload']['tmp_name'], $name);
            echo "<br><img src='$name'>";
        }
    ?>

    </body>
</html>

浏览器: Image can't display

【问题讨论】:

  • 在前添加 echo "

    final name=$name

    " 看看是什么情况,观察最终的名字,是公共有效路径吗?

  • 文件是否包含特殊字符?尝试使用简单的文件名:monimage.jpg(不含空格、逗号、撇号等...)
  • 尝试显示移动命令的结果:$retAction=move_uploaded....; echo "retAction is ".$retAction?'true':'false'
  • 我发现我上传的文件是“tg.png”,路径是“C:\Program Files (x86)\Ampps\tmp\php2505.tmp”。我的moved_upload_file($name = $_FILES['fupload']['tmp_name'], $name) ;返回 true 但我的图像仍然不显示。

标签: php html file


【解决方案1】:

没关系,问题是 move_upload ($name=xxxx, $name),这意味着您将 tmp 源分配给 $name!

这是一个工作代码

<!DOCTYPE html>
<html>
    <body>

       <form method="post" action="upload.php" enctype="multipart/form-data">
                <input type="file" name="fupload" size="100000" accept="image/*">
                <input type="submit" name="upload" value="Upload">
       </form>

       <?php if($_FILES)
        {
            $source=$_FILES['fupload']['tmp_name'];
            $target1 = $_FILES['fupload']['name'];
            move_uploaded_file($source,$target1);
       ?>

       <br>
       source=<?php echo htmlspecialchars($source);?>
       <br>
       target=<?php echo htmlspecialchars($target1);?>  
       <img src="<?php echo htmlspecialchars($target1);?>"

       <?php
        } // if $_FILES 
       ?>

    </body>
</html>

【讨论】:

    【解决方案2】:

    好的,根据评论,似乎 $name 指向外部用户无法访问的路径。试试这样的链接 $name="c:\path To your base path\www\et.png"

    编辑:假设您有一个现有的 www 文件夹,您可以在其中找到您的 index.php。它可以称为公共。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-01
      • 2017-01-16
      • 1970-01-01
      • 1970-01-01
      • 2013-10-31
      • 1970-01-01
      相关资源
      最近更新 更多