Php 从服务器下载图像从javascript上传ajax

Php 从服务器下载图像从javascript上传ajax,php,javascript,download,html2canvas,Php,Javascript,Download,Html2canvas,我目前使用html2canvas来获取一个div作为图像 html2canvas([document.getElementById("board")],{ onrendered: function( canvas ) { var img = canvas.toDataURL(); var request = $.ajax({ type:"POST",

我目前使用html2canvas来获取一个div作为图像

        html2canvas([document.getElementById("board")],{
            onrendered: function( canvas ) {
                var img = canvas.toDataURL();

                var request = $.ajax({
                    type:"POST",
                    url:"downloadPic.php",
                    data:{downloadPic : img}
                });
然后,我想下载该图像(到浏览器默认的下载目录)

但这似乎不起作用。如果我做了一个文件放置内容(“downloadedPic”,“unencodedData”),图片将成功保存在我的服务器上


我是否需要不同的标题配置?

btw,您可以在JS中下载文件,而无需将其发送到服务器,速度更快、更安全,并且无需internet连接即可工作……如何?我一直在找它。。。功能是什么?然后使用下载(atob(strDataURL.split(“,”[1]),“image1.png”,“image/png”);在FF、Ch、IE10工作……嗯。。我确切地知道它在做什么,但它是有效的。。现在查看blobbuilders
if(isset($_POST['downloadPic'])){

    $pic = $_POST['downloadPic'];
    $filteredData=substr($pic, strpos($pic, ",")+1); //html2canvas adds this
    $unencodeData=base64_decode($filteredData);

    $filename = "downloadedPic";

        header('Content-Description: File Transfer');
        header('Content-Type: image/png');
        header('Content-Disposition: attachment; filename="'.basename($filename).'"');
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Pragma: public');
        header('Content-Length: ' . filesize($unencodeData));
        ob_clean();
        flush();
        readfile($unencodeData);

}