-1

だから私は画像ファイルを取り込んで画像ファイルを返すphpファイルを持っています。問題は、ファイルを期待していたときに文字のクラスターを返すことです。これを修正するにはどうすればよいですか? 申し訳ありませんが、私はPHPが初めてです。

そこで、ヘッダーにコンテンツ タイプを設定し、このメソッド imagejpeg($newImage); を使用します。

<?php
error_reporting(0);
$newSize = $_POST['newSize'];
if(empty($newSize)){
    header("Status: 400 Bad Request", true, 400);
    exit();
}
$extension = strtolower(strrchr($_FILES['image']['name'], '.'));
$imageInfo = getimagesize($_FILES['image']['tmp_name']);

switch($extension){
    case '.jpg':
    case '.jpeg':
        $image = imagecreatefromjpeg($_FILES['image']['tmp_name']);
        break;
    case '.gif':
        $image = imagecreatefromgif($_FILES['image']['tmp_name']);
        break;
    case '.png':
        $image = imagecreatefrompng($_FILES['image']['tmp_name']);
        break;
    default:
        header("Status: 400 Bad Request", true, 400);
        exit('');
}

$newImage = imagecreatetruecolor($newSize, $newSize);

if(empty($newImage) || empty($image)){
    header("Status: 400 Bad Request", true, 400);
    exit();
}

imagecopyresampled($newImage, $image, 0, 0, 0, 0, $newSize, $newSize, $imageInfo[0], $imageInfo[1]);

header('Content-Type: ' . $imageInfo['mime']);

switch($extension){
    case '.jpg':
    case '.jpeg':
        imagejpeg($newImage);
        break;
    case '.gif':
        imagegif($newImage);
        break;
    case '.png':
        imagepng($newImage);
        break;
}
?>
4

1 に答える 1

0

テストされていませんが、これは機能する可能性があります。ファイルのダウンロードを初期化します。投稿したコードが自分のものである場合は、私の追加を理解する必要があります。

<?php
error_reporting(0);
$newSize = $_POST['newSize'];
if(empty($newSize)){
    header("Status: 400 Bad Request", true, 400);
    exit();
}
$extension = strtolower(strrchr($_FILES['image']['name'], '.'));
$imageInfo = getimagesize($_FILES['image']['tmp_name']);

switch($extension){
    case '.jpg':
    case '.jpeg':
        $image = imagecreatefromjpeg($_FILES['image']['tmp_name']);
        break;
    case '.gif':
        $image = imagecreatefromgif($_FILES['image']['tmp_name']);
        break;
    case '.png':
        $image = imagecreatefrompng($_FILES['image']['tmp_name']);
        break;
    default:
        header("Status: 400 Bad Request", true, 400);
        exit('');
}

$newImage = imagecreatetruecolor($newSize, $newSize);

header('Content-Type: '.$_FILES['image']['type']);
header('Content-Disposition: attachment; filename="image'.$extension.'"');

switch($extension){
    case '.jpg':
    case '.jpeg':
        imagejpg($newImage);
        break;
    case '.gif':
        imagegif($newImage);
        break;
    case '.png':
        imagepng($newImage);
        break;
}

if(empty($newImage) || empty($image)){
    header("Status: 400 Bad Request", true, 400);
    exit();
}
于 2013-01-24T07:51:58.280 に答える