包含PHP-Script和Content-Disposition Header以强制下载

时间:2016-07-08 18:30:39

标签: javascript php ajax include content-disposition

'class.generateDownload.php'中的脚本生成一个添加了文本的图像,并立即下载到我的机器上。

它接受“日期”的POST数据以获取发布日期的图像/文本。

$date = $_POST['day'];

//UTF-8
header('Content-type: text/html; charset=utf-8');

//Includes
include 'gdtext/Color.php';
include 'gdtext/Box.php';

include 'class.getSlogan.php';
include 'class.getImage.php';

use GDText\Box;
use GDText\Color;


        $slogan_txt = dailySlogan($date);
        $img = dailyImage($date);


        //Set Imagepath
    $imgPath = '../../images/output/' . $img['imageName'];


//Create Image
$im = imagecreatefromjpeg($imgPath);

//Get X/Y for Box
$image_width = imagesx($im);
$image_height  = imagesy($im);
$y = ($image_height / 2 );
$max_x = ($image_width / 2 );
$start = ($max_x / 2);


//Generate Text
$box = new Box($im);
$box->setFontFace('./RobotoCondensed-Bold.ttf');
$box->setFontSize(110);
$box->setFontColor(new Color(255, 255, 255));
$box->setTextShadow(new Color(0, 0, 0, 50), 0, -2);
$box->setBox($start, $y, $max_x, 0);
$box->setTextAlign('center', 'center');
$box->draw($slogan_txt['en']);


//Debug
//header("Content-type: image/png");
//imagejpeg($im, '../../images/download/motivation_' . $date . '.jpg');

header("Content-Disposition: attachment; filename=\"motivation_" . $date . ".jpg\";");
header('Content-Type: image/jpeg');
imagejpeg($im);

到目前为止完美无缺。

不需要通过按钮单击AJAX POST从另一个页面(index.php)调用脚本:

  <script>
  var php_date = "<?php echo $dateVar; ?>";
  $('.btn').click(function() { 

$.post("lib/web/class.generateDownload.php", {
    date : php_date
    }, function(data) {

    console.log(data);
});

});
</script>

包含脚本,但我只是包含脚本的明文,没有图像,没有下载。 POST数据没问题。

0 个答案:

没有答案