JQuery For Download Button

时间:2017-05-14 12:33:50

标签: php jquery

我正在开展一个项目,即以圆形方式裁剪上传的图片,然后将其保存以供预览。这里还有一个用于下载已保存图像的按钮,该按钮被裁剪。 这是我的主要php页面:



$data = $_POST['image'];

list($type, $data) = explode(';', $data);
list(, $data)      = explode(',', $data);

$data = base64_decode($data);
$imageName = time().'.png';
if (file_put_contents('upload/' . $imageName, $data)) {
    echo json_encode(['image' => 'upload/' . $imageName]); // upload is successful and we return image URL to Javascript
}else {
    echo json_encode(['image' => false]); // if upload fails
}




和ajax的另一个是:



FirebaseMessagingService




它的功能很简单,运行良好。我努力制作一个简单的可下载按钮但从未找到合适的JQuery。现在我正在寻找JQuery下载按钮来下载裁剪图像。请指导我必须放置的代码部分和位置。

感谢您的帮助。 :)

1 个答案:

答案 0 :(得分:0)

我已将您的下载图片按钮更改为<a>,并将其ID设为download并使用HTML5 download attribute强制下载文件

<div>
    <a name="Download Save Image" id="download" download>Download Save Image</a>
</div>

您的PHP

$data = $_POST['image'];

list($type, $data) = explode(';', $data);
list(, $data)      = explode(',', $data);

$data = base64_decode($data);
$imageName = time().'.png';

if (file_put_contents('upload/' . $imageName, $data)) {
    echo json_encode(['image' => 'upload/' . $imageName]); // upload is successful and we return image URL to Javascript
}else {
    echo json_encode(['image' => false]); // if upload fails
}

然后在AJAX中获取图片网址,并通过添加hreftarget属性将其设置为下载锚标记。

$('.upload-result').on('click', function (ev) {
    $uploadCrop.croppie('result', {
        type: 'canvas',
        size: 'viewport'
    }).then(function (resp) {

        $.ajax({
            url: "ajaxpro.php",
            type: "POST",
            data: {"image": resp},
            success: function (data) {
                console.log(data);
                var response = JSON.parse(data);
                if (response.image) {
                    html = '<img id="preview" src="' + response.image + '" />';
                    $("#upload-demo-i").html(html);
                    $('#download').attr({
                        target: '_blank',
                        href: response.image
                    })
                }else {
                    alert('Failed to upload image');
                }
            }
        });
    });
});