【问题标题】:Saving image to PHP session将图像保存到 PHP 会话
【发布时间】:2020-10-10 04:52:59
【问题描述】:

我想要完成的事情

嗨!我在网上搜索过,但找不到我要找的东西。我们正在开发一个内部电子邮件签名创建工具。我想将图像添加到会话中,以便我可以在最后将该图像插入到工具中。 我不想将其存储在临时文件夹中或将其保存到数据库中。我知道这不是将图像放入会话的最佳做法。该工具将所有呈现的 HTML 复制到剪贴板,以便立即插入到 Gmail/Outlook。

我在第 1 页上的代码

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
</form>

我在第 2 页上的代码

<?php
    $_SESSION["fileToUpload"] = $_POST['fileToUpload'];
?>

结果

“image.png”文本被插入到签名工具中。我想要的是实际图像本身,而不是插入工具中的文件信息/名称。这可能吗?谢谢!

【问题讨论】:

  • 它已经存储在一个临时文件夹中,你不需要移动它,你可以获取它的内容$_SESSION["fileToUpload"] = file_get_contents($_FILES["fileToUpload"]["tmp_name"])显然需要在此之前进行验证并处理上传失败
  • @LawrenceCherone 我测试了代码,但是当我将代码添加到第 2 页时,我在该行收到“警告:file_get_contents():文件名不能为空”。

标签: php session session-variables


【解决方案1】:

所以你正在尝试做一些类似降价的事情?那是行不通的... 你可以试试这个: https://github.com/ziggi/zimg-host

【讨论】:

    【解决方案2】:

    您可以将图像转换为 base64 编码,然后使用它。

    例子:

    $img = file_get_contents('<path>/image.jpg'); 
    $data = base64_encode($img); 
    

    因此,您将有一个位字符串,您可以将值保存在会话中。

    但请记住,这不是最佳做法。

    此外,您可以在图像源中使用此字符串。

    例子:

    <img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUA
        AAAFCAYAAyACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
            9TXL0Y4OHwAAAABJRU5ErkJggg==" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多