【问题标题】:Display the uploaded image after uploading on the web page上传到网页后显示上传的图片
【发布时间】:2015-08-04 04:19:26
【问题描述】:

我正在尝试显示我已上传并移动到所需位置的图像。这是下面的代码。

if(isset($_FILES['image']))

// image upload from upload.html 

  {

      session_start();
      $_SESSION['str'];
      $_SESSION['img'];
      $image = basename($_FILES["image"]["name"]);
move_uploaded_file($_FILES['image']['tmp_name'], $_SESSION['str'].'_5'.$_SESSION['img']);
//I am trying to display the uploaded pic
      echo '<img src= "$image"/>';
  }

图像存储在 $_SESSION['str'] 位置。我怎样才能显示这个上传的图片。

【问题讨论】:

    标签: php html


    【解决方案1】:

    angular js中如何调用node js方法?

    【讨论】:

    • 在编程语言中,有一种叫做缩进的东西。用于对程序源代码进行格式化,提高可读性。
    • 示例:- updateData(data){ var headers=new Headers(); headers.append("Content-Type","application/json"); return this.http.post("localhost:8080/update",JSON.stringify(data),{ headers:headers }).map(res => res.json()); }
    【解决方案2】:

    您使用了错误的路径来显示图像。您正在使用已上传的图像 $_FILES["image"]["name"] 的原始名称,然后您使用 move_uploaded_file 函数将文件移动并保存为 $_SESSION['str'].'_5'.$_SESSION['img'] 以便不匹配(看不到您的会话变量已创建)。

    另外,您保存上传文件的位置是否可供客户端访问?将文件移动到 Web 应用程序的 public 区域。

    更新

    我现在从您的评论中了解到,您希望将文件保存在私有位置,然后在某些 HTML 模板中的 &lt;img&gt; 元素中显示该文件。 我更改了示例代码以使用base64 将上传的图像嵌入到 HTML 中。

    您可以使用此函数来创建嵌入代码。我是从这个问题的答案How to embed images.. 中得到的。

    function dataUri($file, $mime) 
    {  
        $contents = file_get_contents($file);
        $base64   = base64_encode($contents);
    
        return 'data:' . $mime . ';base64,' . $base64;
    }
    

    那么你可以像这样使用它:

    session_start();
    
    // absolute path including the path to the public folder
    $image_dest_path = './public/img/' . $_SESSION['str'] . '_5' . $_SESSION['img'];
    
    // move file to server location
    move_uploaded_file($_FILES['image']['tmp_name'], $image_dest_path);
    
    
    // imbed the image into the HTML.
    echo '<img src= "' . dataUri($image_dest_path, 'image/jpg') . '"/>';
    

    【讨论】:

    • 感谢您的宝贵意见。但我不想将图像移动到公共位置。我想从我存储的位置检索图像。
    【解决方案3】:

    我假设 $_SESSION['str'] 会话变量是存储图像的文件夹的路径 使用下面的代码,给出图片的完整url:

    echo "<img src = '".$_SESSION['str'].DIRECTORY_SEPARATOR.$image."'"." />";
    

    【讨论】:

    • 我一输入 $_SESSION['str'] 就开始给出语法错误
    • @AnuragLal,现在请检查我在我的服务器上对其进行了测试,看看是否没有给出任何解析错误,我希望你的$_SESSION['str'] 已定义并在你的 php 页面中启动会话。
    • @Saurabh:是的,我已经启动了 session_start();并定义了 $_SESSION['str']。但它仍然不返回任何图像。
    • 你能把输出中回显的内容贴出来
    • 我使用了您在此块中提到的确切代码。它给出了一个没有输出的空白页。
    【解决方案4】:

    首先你说位置存储在$_SESSION['str'],但你尝试放置一个值为basename($_FILES["image"][""name])的图像。

    第二;您应该在页面顶部使用session_start()

    第三;为了在字符串中使用变量,您需要使用双引号 (") 而不是单引号 (')。像这样:

    echo "<img src='$_SESSION['str']">;
    

    但我会用这个:

    echo '<img src="'. $_SESSION['str'] .'" >';
    

    另外,你确定你没有收到任何错误吗?如果您没有看到任何尝试将其放在文件顶部:

    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    

    【讨论】:

      猜你喜欢
      • 2013-03-28
      • 2021-02-21
      • 2015-02-12
      • 1970-01-01
      • 2019-03-07
      • 2018-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多