首先,对不起我的英语不好。
我有以下问题:

我确实有以下代码将Dropped图像存储在localStorage上:

localStorage.setItem("dropped_images", JSON.stringify( array_dropped_images ) );


这将导致如下所示:

localStorage.getItem('dropped_images'):
[
{"id":0,"data":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACgAAAAWgCAIAAAAdYo2IAAAAGXRFW…nu8vxl30QxDphgBbok9vXa1iT2dWMDBGQHDCyNMfCUO83/A/VzaPVq31uqAAAAAElFTkSuQmCC"},
{"id":1,"data":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACgAAAAWgCAIAAAAdYo2IAAAAGXRFW…m4r4R9wH1l7K6H+6pa8cB9IzySnR2RydqmlhaTBqfp8hP/HzkuuKqP/f8rAAAAAElFTkSuQmCC"}
]


我只是无法理解如何将其发送到PHP并通过$ _FILES获得它。你能帮助我吗?
谢谢!

- - - - - - - - - - 解决了 - - - - - - - - - - - - - - - -------------------------------------------------- ---------------------------

根据最佳答案(@ sam-battat),可以解决此问题,并编辑部分功能:

function base64_to_img($base64_string, $output_file) {
    $data = explode(',', $base64_string);

    /**
     * Remove the raw text
     */
    $ext = str_replace("data:image/", '', $data[0]);
    $ext = str_replace(";base64", '', $ext);

    /**
     * Create the file with the correct extension
     */
    $ifp = fopen($output_file . "." . $ext, "wb");

    /**
     * Create file based on base64
     */
    fwrite($ifp, base64_decode($data[1]));
    fclose($ifp);

    /**
     * return file path
     */
    return $output_file;
}


非常感谢你!

最佳答案

您可以发布字符串(base64字符串),然后将其转换为文件:

$img = $_POST['img_data'];

$file = base64_to_img($img, '/path/to/file.png');

function base64_to_img($base64_string, $output_file) {
    $ifp = fopen($output_file, "wb");

    $data = explode(',', $base64_string);

    fwrite($ifp, base64_decode($data[1]));
    fclose($ifp);

    return $output_file;
}

关于javascript - 将图像从localStorage上载到PHP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27911678/

10-11 05:33