gd ライブラリを使用して画像を生成し、アップロードする php に関連する問題

WBOY
リリース: 2016-06-13 13:00:01
オリジナル
828 人が閲覧しました

PHP
で GD ライブラリを使用した後に画像をダウンロードする際の問題は、GD ライブラリを使用して画像を生成した後、画像を保存せずに直接ダウンロードできますか?午前中ずっと試してみましたが、まだ動作しません...

image.php

//创建一个真彩画布<br />
$image = imagecreatetruecolor(400,190);<br />
//背景创建颜色<br />
$green = imagecolorallocate($image,255,255,255);<br />
//填充画布颜色<br />
imagefill($image,0,0,$green);<br />
//输出图片<br />
header("Content-Type: image/jpeg");<br />
imagejpeg($image);<br />
//销毁资源<br />
imagedestroy($image);
ログイン後にコピー


Index.php

<a href="imagedown.php?filename=image.php"><img src="image.php" /></a>
ログイン後にコピー


imagedown.php

<br />
if(isset($_GET['filename'])){<br />
????????//var_dump(getimagesize($_GET['filename']));<br />
????????download($_GET['filename']);<br />
????}<br />
????function download($fileName){<br />
????????header("Content-Type: image/jpeg");<br />
????????header('Content-Disposition: attachment; filename="'.$fileName.'"');<br />
????????header('Content-Length: '.filesize($fileName));<br />
????????readfile($fileName);<br />
????}<br />
ログイン後にコピー

-----解決策--------------------------------
いいえ、このプロセスを実行する必要があります。 PHP の gd ライブラリは、生成された画像コンテンツをメモリから直接読み取ることをサポートしていないようです。ローカルに保存してから読み取ることしかできません。
画像コンテンツを取得する関数を提供するように gd ライブラリを書き直すことをお勧めします。
------解決策---------
次のように書きます
download('x.jpg');<br />
<br />
function image() {<br />
  //创建一个真彩画布<br />
  $image = imagecreatetruecolor(400,190);<br />
  //背景创建颜色<br />
  $green = imagecolorallocate($image,255,255,0);<br />
  //填充画布颜色<br />
  imagefill($image,0,0,$green);<br />
  //输出图片<br />
  //header("Content-Type: image/jpeg");<br />
  imagejpeg($image);<br />
  //销毁资源<br />
  imagedestroy($image);<br />
}<br />
<br />
function download($fileName){<br />
  ob_start();<br />
  image();<br />
  $s = ob_get_clean();<br />
  header("Content-Type: image/jpeg");<br />
  header('Content-Disposition: attachment; filename="'.$fileName.'"');<br />
  header('Content-Length: '.strlen($s));<br />
  echo $s;<br />
}
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!