Javascriptを使って動画のサムネイル(ポスター画像)を自動生成
ホームページ内に動画を掲載する場合、youtube等のサービスを利用する場合は問題ないの…
PHPを使用してPDFファイルを動的にダウンロードしたところ、「header」関数でのリダイレクトができなくなってしまったため「cookie(クッキー)」とjavascriptを併用して対応した方法をメモ
<form action="download.php" method="post">
<input type="hidden" name="download__token" value="xxxxxxxxxx">
<dl>
<dt>メールアドレス</dt>
<dd><input type="text" name="email" placeholder="例)mail@example.com"></dd>
</dl>
<div class="btnSubmit"><input type="submit" name="download" value="送信する"></div>
</form>
if(!empty($_POST['download'])){
//値の取得処理とバリデーションを記載
if(empty($err_msg['error'])){
//クッキーを設定
setcookie('downloaded', '○○○○', time()+60*60, '/');
//ファイル名
$filename = '○○○○.pdf';
//ファイルのパス
$filepath = dirname(__FILE__).'/'.$filename;
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.rawurlencode($filename).'"');
header('Content-Length: '.filesize($filepath));
ob_end_clean();
readfile($filepath);
}else{
header('location:'.$_SERVER['HTTP_REFERER']);
}
}
$('form').submit(function() {
setInterval(function(){
if(document.cookie){
//クッキーを配列に収納
var params = document.cookie.split(';');
var array = {};
for(i = 0; i < params.length; i++){
var term = params[i].split('=');
var key = term[0].trim();
var value = term[1] ? term[1].trim() : '';
array[key] = value;
}
if(array['downloaded']){
//クッキーの削除処理
document.cookie = "downloaded=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
window.location.href = '完了ページのURL';
}
}
}, 1000);
});
今回はメールアドレスを取得したのちにPDFをダウンロード可能にする仕様のため、フォーム(HTML)にはメールアドレスの入力項目を設置。
フォームの受け取り処理でバリデーションを実行し、エラーの無い場合に「setcookie」関数を使用してクッキーを設定(変数名:downloaded)
javascriptの「setInterval」を使用し1秒毎に、クッキーの値を判定して、条件に合った時のみ完了ページに遷移させています。
ホームページ内に動画を掲載する場合、youtube等のサービスを利用する場合は問題ないの…
ホームページ内でスクロールバーを使用する場合、特に設定がなければ左上を基準に表示されます…
テキスト入力時に文字を装飾したり画像や表を埋め込めるリッチエディタ。ワードプレスを使用す…