私は次のように動的に生成された画像を自分のページに表示します。
<img id="my_image" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEA/gD+AAD/etc............" />
ユーザーに画像を右クリックして[保存]をクリックするように指示する代わりに、ダウンロードリンクを公開します。これをクリックすると、画像のダウンロードが求められます。これを達成する方法は?
当初、jsでの私の試みは次のとおりです。
var path = $('#my_image').attr('src');
window.open('./download.php?file=' + path);
そしてdownload.phpで:
<?php
header('Content-Description: File Transfer');
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename= " . $_GET['file'] . "");
?>
<img src="<?= $_GET['file'] ?>" />
ただし、問題は、Base64のURL攪拌が非常に大きいため、GETリクエストのバイト制限を超えていることです。
私はJavaScriptまたはPHPのいずれかのソリューションを受け入れています。