猿问

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

我想在数据库中上传图像并使用 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 行给出


慕雪6442864
浏览 134回答 2
2回答

翻过高山走不出你

试这个方法添加[$i]上file_get_contentsif(isset($_POST['sbtn'])){&nbsp; &nbsp; $countfiles = count($_FILES['s_o_img']['name']);&nbsp; &nbsp; for($i=0;$i<$countfiles;$i++){ // add .length of $countfiles&nbsp; &nbsp; &nbsp; &nbsp; $filename = $_FILES['s_o_img']['name'][$i];&nbsp; &nbsp; &nbsp; &nbsp; move_uploaded_file($_FILES['s_o_img']['tmp_name'][$i],$filename);&nbsp; &nbsp; &nbsp; &nbsp; $bin = file_get_contents($_FILES["s_o_img"]["name"][$i]);&nbsp; // add [$i] for valid index image&nbsp; &nbsp; &nbsp; &nbsp; $hex_string = base64_encode($bin);&nbsp; &nbsp; }}

阿波罗的战车

$images = array('zdcci389,3232cci389,42423fsfs2343'); //all base64 image stringsforeach($images as $image){&nbsp; &nbsp; $binary = base64_decode($image);&nbsp; &nbsp; $f = finfo_open();&nbsp; &nbsp; $mime_type = finfo_buffer($f, $binary, FILEINFO_MIME_TYPE);&nbsp; &nbsp; $expload_data = explode("/",$mime_type);&nbsp; &nbsp; $expload_data = array_filter($expload_data);&nbsp; &nbsp; $extension = "jpg";&nbsp; &nbsp; if (!empty($expload_data)){&nbsp; &nbsp; &nbsp; &nbsp; $extension_val = $expload_data[1];&nbsp; &nbsp; &nbsp; &nbsp; if($extension_val!=""){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $extension = $extension_val;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; $filename = uniqid().".".$extension;&nbsp; &nbsp; $orignal_path =&nbsp; "uploads/".$filename;&nbsp; &nbsp; file_put_contents($orignal_path, $binary);}试试这个,会工作。
随时随地看视频慕课网APP
我要回答