javascript - 从html2canvas保存或保存为对话时的默认文件名?

时间:2014-06-01 17:45:27

标签: php html2canvas

我的一位朋友为我配置了h2ml2canvas,因为我不懂javascript。使用h2ml2canvas进行保存时,会生成随机文件名,例如:

df0e604b2962492165eb8f2b31578171

有没有办法指定文件名前缀?例如足球然后产生一个随机的3-4位数?或者有没有办法打开保存为对话而不是点击下载图像?我的download.php文件。

<?php
$file = trim($_GET['path']);

// force user to download the image
if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: image/png');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    unlink($file);
    exit;
}
else {
    echo "error not found";
}

?>

1 个答案:

答案 0 :(得分:0)

您的案例中的文件名实际上是由PHP服务器端生成的(而不是),而不是您引用的JavaScript。当它返回要发回的数据时,它包含一个Content-Disposition标题,可能是一个如下所示:

Content-Disposition: attachment

可以通过添加到该标题为浏览器建议文件名:

Content-Disposition: attachment; filename=soccer123.xyz

在PHP的某个地方,你应该找到:

header("Content-Disposition", "attachment");

或类似的。您可以将其更改为:

header("Content-Disposition", "attachment; filename=soccer-" . rand(100,999) . ".xyz");

(可能最好使.xyz成为图片类型的合适扩展名,例如.png.jpg ...)


重新编辑,可以替换:

header('Content-Disposition: attachment; filename='.basename($file));

header('Content-Disposition: attachment; filename=soccer-'.rand(100,999).'.xyz');

再次,你需要一个正确的扩展名而不是.xyz