为了账号安全,请及时绑定邮箱和手机立即绑定

在 PHP 中使用 base64 编码的多文件上传

在 PHP 中使用 base64 编码的多文件上传

PHP
慕雪6442864 2021-10-15 14:55:49
我想在数据库中上传图像并使用 base64 编码/解码来获取它们。但我不知道该怎么做?HTML:    <form method="POST" action="add_script.php" enctype="multipart/form-data">    <input type="file" name="s_o_img[]" class="form-control" multiple="" accept="image/*">    <input type="submit" name="sbtn" class="btn btn-primary" value="Save">    </form>PHP:      if(isset($_POST['sbtn']))     {     $countfiles = count($_FILES['s_o_img']['name']);     for($i=0;$i<$countfiles;$i++){     $filename = $_FILES['s_o_img']['name'][$i];     move_uploaded_file($_FILES['s_o_img']['tmp_name'][$i],$filename);     $bin = file_get_contents($_FILES["s_o_img"]["name"]);     $hex_string = base64_encode($bin);     }错误:警告:file_get_contents() 期望参数 1 是有效路径,数组在 C:\xampp\htdocs\download\add_script.php 中第 14 行给出
查看完整描述

2 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

试这个方法


添加[$i]上file_get_contents


if(isset($_POST['sbtn']))

{

    $countfiles = count($_FILES['s_o_img']['name']);

    for($i=0;$i<$countfiles;$i++){ // add .length of $countfiles

        $filename = $_FILES['s_o_img']['name'][$i];

        move_uploaded_file($_FILES['s_o_img']['tmp_name'][$i],$filename);

        $bin = file_get_contents($_FILES["s_o_img"]["name"][$i]);  // add [$i] for valid index image

        $hex_string = base64_encode($bin);

    }

}


查看完整回答
反对 回复 2021-10-15
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

$images = array('zdcci389,3232cci389,42423fsfs2343'); //all base64 image strings

foreach($images as $image){

    $binary = base64_decode($image);

    $f = finfo_open();

    $mime_type = finfo_buffer($f, $binary, FILEINFO_MIME_TYPE);

    $expload_data = explode("/",$mime_type);

    $expload_data = array_filter($expload_data);

    $extension = "jpg";

    if (!empty($expload_data)){

        $extension_val = $expload_data[1];

        if($extension_val!=""){

            $extension = $extension_val;

        }

    }

    $filename = uniqid().".".$extension;

    $orignal_path =  "uploads/".$filename;

    file_put_contents($orignal_path, $binary);

}

试试这个,会工作。


查看完整回答
反对 回复 2021-10-15
  • 2 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信