Avatar
Standa
Člen
Avatar
Standa:

Ahoj všem,
používáte někdo tento plugin? Mám problém s jeho rozchozením na soubory PDF. Určitě to souvisí s tím, že je potřeba nastavit, k vůli integrovaným prohlížečům, Cookie odesílané serverem na "Content-Disposition: attachment; filename=Repor­t0.pdf". Bohužel nevím jak to zařídit, download je zařízen pomocí iframe a opravdu v hlavičce odezvy u helpu je "Set-Cookie fileDownload=true; path=/" a "Content-Disposition attachment; filename=Repor­t0.pdf" Přímo v pluginu je uvedeno:

Díky za pomoc

 
Odpovědět 15.7.2014 18:37
Avatar
Standa
Člen
Avatar
Standa:

Tak jsem to nakonec vyřešil tímto pluginem využívající action formu a hidden inputy pro odeslání parametrů, např. pro PHP:

/*
 * --------------------------------------------------------------------
 * jQuery-Plugin - $.download - allows for simple get/post requests for files
 * by Scott Jehl, scott@filamentgroup.com
 * http://www.filamentgroup.com
 * reference article: http://www.filamentgroup.com/lab/jquery_plugin_for_requesting_ajax_like_file_downloads/
 * Copyright (c) 2008 Filament Group, Inc
 * Dual licensed under the MIT (filamentgroup.com/examples/mit-license.txt) and GPL (filamentgroup.com/examples/gpl-license.txt) licenses.
 * --------------------------------------------------------------------
 */

jQuery.download = function(url, data, method){
        //url and data options required
        if( url && data ){
                //data can be string of parameters or array/object
                data = typeof data == 'string' ? data : jQuery.param(data);
                //split params into form inputs
                var inputs = '';
                jQuery.each(data.split('&'), function(){
                        var pair = this.split('=');
                        inputs+='<input type="hidden" name="'+ pair[0] +'" value="'+ pair[1] +'" />';
                });
 console.log(inputs);
                //send request
                jQuery('<form action="'+ url +'" method="'+ (method||'post') +'">'+inputs+'</form>')
                .appendTo('body').submit().remove();
        };
};

s jednoduchým voláním jQuery:

$.download('download.php','filename=report.pdf');

volající toto PHP:

<?php
$file = 'temp/report.pdf';

 ob_clean();
    header('Content-Description: File Transfer');
    header('Content-Type: application/pdf');
    header('Content-Disposition: attachment; filename='.basename($file));
 readfile($file);
exit();
?>

Tak třeba to někomu pomůže.
Standa

 
Nahoru Odpovědět 16.7.2014 22:39
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.