$_FILES に格納されているアップロードが成功した一時ファイルの名前より、それを加工して実際のアップロードディレクトリに格納しています
( ※ 必要ならば、回転も行います )
// *****************************************
// アップロードされたファイルを縮小して保存
// *****************************************
function ImageConvert() {
global $image_dir,$err_message;
$err_message = "";
$upload = $image_dir ."/";
$_POST['prefix'] = trim($_POST['prefix']);
if ( $_POST['prefix'] != '' ) {
$upload .= $_POST['prefix'] ."-";
}
$upload .= $_FILES['MyUploadFile']['name'];
# テンポラリディレクトリにある実際のファイル
$file = $_FILES['MyUploadFile']['tmp_name'];
# ファイルの属性等を取得
$target = getimagesize( $file );
# 現在のサイズ
if ( $_POST['role'] == '1' ) {
$width = $target[1];
$height = $target[0];
}
else {
$width = $target[0];
$height = $target[1];
}
# 横
if ( $width > $height ) {
if ( $width <= 500 ) {
move_uploaded_file(
$_FILES['MyUploadFile']['tmp_name'], $upload );
return;
}
$width_new = 500;
}
# 縦
else {
if ( $width <= 400 ) {
move_uploaded_file(
$_FILES['MyUploadFile']['tmp_name'], $upload );
return;
}
$width_new = 400;
}
$height_new = (int)( ($height/$width)*$width_new );
# JPEG
# 元のファイルのハンドル
$jpeg = imagecreatefromjpeg ( $file );
if ( $_POST['role'] == '1' ) {
$jpeg = imagerotate($jpeg, -90, 0);
}
if ( $_POST['role'] == '2' ) {
$jpeg = imagerotate($jpeg, 90, 0);
}
# 新しいイメージ
$jpeg_new = imagecreatetruecolor( $width_new, $height_new );
# サイズ変更して新しいイメージへ転送
$ret = imagecopyresampled(
$jpeg_new,
$jpeg,
0,
0,
0,
0,
$width_new,
$height_new,
$width,
$height
);
if ( !$ret ) {
$err_message = "サイズ変更に失敗しました";
return;
}
# JPEG ファイルとして、クオリティ 75 で出力
$ret = imagejpeg ( $jpeg_new, $upload, 75);
if ( !$ret ) {
$err_message = "ファイル作成に失敗しました";
return;
}
}
posted by
at 2009-07-13 15:16
|
PHP
|

|