【问题标题】:how to upload and convert image in base64 without storing the image in php如何在base64中上传和转换图像而不将图像存储在php中
【发布时间】:2014-04-11 09:27:35
【问题描述】:

我可以上传图像并将其保存在任何位置,然后将该图像转换为 base64。但是我们如何才能在不保存的情况下转换 base64 中的图像。请问有什么解决办法吗?

【问题讨论】:

  • 任何上传都会自动保存到临时文件夹中。您可以对此进行编码,然后选择不将其保存到正确的文件夹中。
  • 对不起,先生,请给我一个演示代码

标签: php


【解决方案1】:
$photoTmpPath = $_FILES['filename']['tmp_name'];
$data = file_get_contents($photoTmpPath);
$base64 = base64_encode($data);

如果你想测试:

header('Content-type: image/png');
echo $data;
exit;

【讨论】:

  • 完美。这是最好的答案。
【解决方案2】:

如果您有一个通过 $_POST 管理您的图像上传的 Web 表单。你可以用这个..

<?php 
if(isset($_POST)){
    $name = $_FILES['file']['name']; 
    $size = $_FILES['file']['size']; 
    $type = $_FILES['file']['type']; 
    $tmp_name = $_FILES['file']['tmp_name']; 

    if(isset($name)){ 
      if(!empty($name)){ 
          $target_path = basename( $_FILES['file']['name']);
          if(move_uploaded_file($_FILES['file']['tmp_name'], $target_path)) {
             echo "The file ".  basename( $_FILES['file']['name'])." has been uploaded";

             $im = file_get_contents($_FILES['file']['name']);
             $imdata = base64_encode($im);   
             var_dump($im);
             unlink($_FILES['file']['name']);
          }
        }else{ 
            echo 'Please choose a File'; 
        } 
    }
}
?> 
<form method="POST" enctype="multipart/form-data"> 
<input type="file" name="file"> 
<input type="submit" value="Upload"> 
</form>

【讨论】:

  • 对不起,我不能不执行或理解你
  • 你是如何上传图片的?
  • 我已经更新了我的答案,尝试一下并告诉我结果是什么,或者你是否得到错误
  • 删除file_get_contents(basename($_FILES['file']['name']));中的basename,因为它需要完整路径才能读取文件。取消链接也一样。顺便说一句,您不需要 move_uploaded_file()。您可以处理临时文件以对其进行 base64_encode。
猜你喜欢
  • 2013-10-20
  • 1970-01-01
  • 2020-06-13
  • 1970-01-01
  • 1970-01-01
  • 2015-07-21
  • 2019-08-15
  • 2021-02-20
  • 1970-01-01
相关资源
最近更新 更多