0

ですから、皆さんに簡単な質問をします... 編集された画像を生成する PHP ファイルがあります。ファイルは次のようになります。サーバーから画像を取得し、特定の仕様でトリミングします。

<?php
header("Content-Type: image/jpg");

//error_reporting(E_ALL);
//ini_set('display_errors', '1');

$src = getcwd()."/".$_GET["img"].".jpg";
$screenw = $_GET["sw"];
$screenh = $_GET["sh"];


$jpeg_quality = 100;

$w = $screenw;
$h = 428;

$targ_w = $w;
$targ_h = $h;

$img_r = imagecreatefromjpeg($src);
$dst_r = ImageCreateTrueColor($targ_w, $targ_h);

$x = 1000 - floor($screenw / 2);
$y = 1000 - floor(428 / 2);

imagecopyresampled($dst_r, $img_r, 0, 0, $x, $y, $targ_w, $targ_h, $w, $h);

imagejpeg($dst_r, null, 100);
exit;
?>

ファイルはローカルの MAMP サーバーで正常に動作します。ただし、000webhost にアップロードすると、すぐに

エラーが含まれているため、イメージ image1 を表示できません

メッセージ。そして、いくつかのテストの後、ヘッダーが原因であると判断しました。カールすると、ライブ サイトの結果は次のようになります。

Date: Mon, 11 Nov 2013 06:47:40 GMT
Server: Apache
X-Powered-By: PHP/5.2.17
Connection: close
Content-Type: image/jpeg

およびローカルホスト:

Date: Mon, 11 Nov 2013 06:52:20 GMT
Server: Apache/2.2.23 (Unix) mod_ssl/2.2.23 OpenSSL/0.9.8y DAV/2 PHP/5.4.10
X-Powered-By: PHP/5.4.10
Content-Type: image/jpeg

ライブ サイトでヘッダーが送信される前に接続が閉じられるため、エラーがスローされることがわかります...なぜこれが起こっているのですか? 私のコードに問題がありますか?これはPHPで解決できますか?私にお知らせください。よろしくお願いします。

4

1 に答える 1

0

これは 000webhost の問題であることに気付きました。ページの末尾にトラッキング コードを追加するだけでなく、ファイルの先頭に改行も送信します。これは、他のヘッダーが送信される前にヘッダーを送信していたため、これを htaccess ファイルに追加すると問題が修正されました。

php_value auto_append_file none
php_value auto_prepend_file none

とにかくありがとう。

于 2013-11-11T16:46:26.487 に答える