勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

jQueryでAjax通信したデータをPHPで受け取り、zip化したファイルをダウンロードさせる方法

  jQuery JavaScript

jQueryのAjaxで何らかのデータをPHP側に送信し、PHP側で当該データをファイルに書き込んだ上でzipファイル化し、ブラウザからダウンロードさせたい。PHP経由でzipファイルダウンロードは以前に行ったが、さらにAjax経由というのは対応したことが無かったので以下にソースコード等をメモ。

 

対応方法

PHP側

PHP側については以前にメモした方法でzipファイルを出力させること。Ajaxから受信したデータは$_REQUEST等で取り扱うと良い。

Ajax側

【PHP側のURL】【Ajaxで送信したいデータ】【ダウンロードさせたいファイル名】部分は適宜変更すること。

$('#download').on('click', function(){
    $.ajax({
        type: 'post',
        url: '【PHP側のURL】',
        data: {【Ajaxで送信したいデータ】},
        xhrFields: { responseType: 'blob' }
    }).done(function (response, _textStatus, _jqXHR) {
        $('<a>', {
            href: URL.createObjectURL(new Blob([response], { type: response.type })),
            download: "【ダウンロードさせたいファイル名】",
        }).appendTo(document.body)[0].click();
    });

    return false;
});

 - jQuery JavaScript

  関連記事

jquery.cookie.jsで保存期間を時間指定する方法

jquery.cookie.jsで保存期間を1時間等、時間指定したい。公式サイト ...

jQueryでjsonデータを処理(parseJSON)

他社が作成したシステムのちょっと改修案件があった。設置したもののどうも動かないと ...

画像アップロード前の時点で画像が選択されているか確認

やりたかった事は、フォーム内で画像をアップロードする際、 ちゃんと画像がローカル ...

PHPとajaxでチャットの作成

■ソース ・index.php <? error_reporting(E_ ...

jQueryで要素を移動する方法のまとめ

jQueryで要素を移動する際、insertBefore / insertAft ...