【问题标题】:Client side download of image created by the user客户端下载用户创建的图像
【发布时间】:2017-08-06 02:47:21
【问题描述】:

我对 php 知之甚少,对于任何愚蠢的错误,我深表歉意。我在网上找到了这段代码,但不是我想要的。

如下所示,我正在显示一个表单,用户在其中写了一些东西,然后单击“CRIAR SELO”按钮,页面得到刷新,该文本被放到图像上并显示供他使用鼠标右键下载.

我希望当用户单击“CRIAR SELO”按钮时,会显示一个窗口,以便他可以选择将文件保存在计算机中的哪个位置,这样就无需右键单击并保存。

*我不需要一直显示图片,所以如果不能同时做(显示和强制下载窗口)也没问题。

这是表格(index.php):

<?php $rda = isset($_GET['rda'])?$_GET['rda']:"00000BR"; ?>
<form action="" method="get" />
    <input name="rda" type="text" value="" placeholder="00000BR">
    <img src="selo.php?rda=<?php echo $rda ?>">
    <input type="submit" name="enviar" class="confirma" value="CRIAR SELO »">
</form>

这里是 PHP (selo.php):

<?php
$imagem = imagecreatefromjpeg( "00000BR_01.jpg" );
$cor = imagecolorallocate( $imagem, 000, 000, 000 );
$font = "verdanab.ttf";
$rda = urldecode( $_GET['rda'] );
imagettftext($imagem, 20, 0, 37, 50, $cor, $font, $rda );
header('Content-type: image/jpeg');
imagejpeg( $imagem, '', 100 );
imagedestroy($imagem);
?>

感谢您的帮助。

【问题讨论】:

  • 尝试添加-header('Content-Disposition: attachment; filename="picture.jpg"');在第一个标题之后
  • @AlexeyShatrov 您好,感谢您的回复。我尝试了您的建议,但不幸的是没有奏效。
  • 您显然不是在要求客户端下载(这真的很棘手,因为没有办法从客户端 JavaScript 模拟 HTTP 标头),而是旧的服务器端东西。 Content-Disposition: attachment 确实是解决方案。它到底怎么不适合你?没有生成标头吗?它被浏览器忽略了吗?下载是否损坏?还有什么?
  • @ÁlvaroGonzález 我不知道它是否没有被生成或忽略(抱歉,对这个主题了解不多),添加 Alexey 的建议后没有任何改变。我编辑了这个问题以更好地表达我自己。我希望当用户单击“CRIAR SELO”按钮时,会显示一个窗口,以便他可以选择在他的计算机中保存文件的位置。
  • @AlanFranco 除非我遗漏了什么,否则您的任何更新都不会尝试回答这个问题。如果问题是图像保存在默认的 Downloads 文件夹中,那是您无法控制的浏览器功能。

标签: php imagejpeg


【解决方案1】:

我找到了办法。

我添加了第二个按钮,所以现在用户单击“CRIAR SELO”以生成带有文本的图像,然后单击“下载”按钮以下载生成的带有文本名称的图像。

例如:用户输入“77777BR”,点击“CRIAR SELO”,然后点击“DOWNLOAD”下载名为“7777BR.jpg”的图片。

<?php $rda = isset($_GET['rda'])?$_GET['rda']:"00000BR"; ?>
<form action="" method="get">
    <input name="rda" type="text" placeholder="00000BR">
    <br />
    <img src="selo.php?rda=<?php echo $rda ?>">
    <br />
    <input type="submit" name="enviar" class="confirma" value="CRIAR SELO »">
    <a href="selo.php?rda=<?php echo $rda ?>" download="<?php echo $rda.'.jpg' ?>">DOWNLOAD</a>
</form>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-10
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多