如何在php上传多个解码的base64图像?

时间:2018-01-05 19:30:19

标签: php file-upload

我想将多个base64图像发送到PHP Web服务。现在我需要解码所有这些base64图像并将它们保存到上传文件夹中。

这是我将base64值分配给隐藏输入类型的代码。

HTML:

<form action="./upload.php" method="post">
    <input type="hidden" id="imagefile1" name="imagefile[]" value="">
    <input type="hidden" id="imagefile2" name="imagefile[]" value="">
    <input type="hidden" id="imagefile3" name="imagefile[]" value="">
</form>

不幸的是,这种方法不起作用我不知道问题出在哪里!

upload.php的:

$imagefile = $_POST['imagefile'];
define('UPLOAD_DIR', 'uploads/');
foreach($imagefile as $i => $imagefiles)
{

    $image_parts = explode(";base64,", $imagefiles[$i]);
    $image_type_aux = explode("image/", $image_parts[$i]);
    $image_type = $image_type_aux[$i];
    $image_base64 = base64_decode($image_parts[$i]);
    $file = UPLOAD_DIR . uniqid() . '.png';
    file_put_contents($file[$i], $image_base64[$i]);

}

1 个答案:

答案 0 :(得分:0)

您的局部变量中似乎使用了错误的索引ss: 在下面的行中,您使用的是$i,而不是使用正确的索引。

$i

但我认为你应该使用这样的东西(但是你应该用你的值进行测试):

$image_type = $image_type_aux[$i];
$image_base64 = base64_decode($image_parts[$i]);
$file = UPLOAD_DIR . uniqid() . '.png';
file_put_contents($file[$i], $image_base64[$i]);