アップロードされた画像ファイルからサムネイルを作成し、それをサーバーにアップロードする際に問題が発生しました。
現在、サムネイルを作成し、それを一時的に保存して呼び出し元に返す関数があります。
次に、move_uploaded_file(tempthumb, path); で作成したサム イメージをアップロードします。
createThumb 関数と呼び出し元は次のとおりです。
function createThumb( $image, $thumbWidth )
{
// load image and get image size
$img = imagecreatefromjpeg( "{$image}" );
$width = imagesx( $img );
$height = imagesy( $img );
// calculate thumbnail size
$new_width = $thumbWidth;
$new_height = floor( $height * ( $thumbWidth / $width ) );
// create a new temporary image
$tmp_img = imagecreatetruecolor( $new_width, $new_height );
// copy and resize old image into new image
imagecopyresized( $tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
return $tmp_img;
}
return $tmp_img; // Here I return the new image. Is this the proper way to get a binary image back??
呼び出し元は次のとおりです。
$thumb = createThumb($_FILES['propform-previmg']['tmp_name'], $max_previmg_width);
$filenamepath = $src_dir . '/thumb/' . $_FILES['propform-previmg']['name'];
if ( !move_uploaded_file($thumb, $filenamepath ))
echo "Error moving file {$filenamepath}";
最初にサムネイルを作成しようとせずに、アップロードしたファイルを直接アップロードしようとしましたが、うまくいきました。したがって、createThumb 関数から返される変数に何らかのエラーがあると思いますが、正確にはわかりません。
また、imagejpeg(file, path) を使用して createThumb 関数内ではなく、呼び出し元コードからアップロードする必要があります。
ありがとうございました!