<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=shift_jis">
</HEAD>
<BODY>
<FORM
enctype="multipart/form-data"
action="<?= basename($_SERVER['SCRIPT_NAME']) ?>"
method="POST"
>
<input type="hidden" name="MAX_FILE_SIZE" value="500000">
アップロードするファイル :
<input name="MyUploadFile" type="file" style='width:400'>
<input type="submit" value="アップロード">
</FORM>
<PRE>
<?
if ( $_SERVER['REQUEST_METHOD'] == "POST" ) {
$target = $_FILES['MyUploadFile']['name'];
$target = strtoupper($target);
$ext = array("JPG","JPEG","PNG");
$file_ok = false;
foreach( $ext as $Value ) {
$target2 = basename( $target, $Value );
if ( strlen( $target2 . $Value ) == strlen( $target ) ) {
$file_ok = true;
break;
}
}
if ( $file_ok ) {
if ( is_uploaded_file( $_FILES['MyUploadFile']['tmp_name'] ) ) {
ImageConvert( );
}
else {
print "アップロードに失敗しました\n";
}
}
else {
print "アップロード対象ファイルではありません\n";
}
}
# **********************************************************
# アップロードされたファイルを縮小して保存
# **********************************************************
function ImageConvert() {
$upload = "D:\\LOCALWEB\\phpmaterial\\upload\\";
$upload .= $_FILES['MyUploadFile']['name'];
# テンポラリディレクトリにある実際のファイル
$file = $_FILES['MyUploadFile']['tmp_name'];
# ファイルの属性等を取得
$target = getimagesize( $file );
# 現在のサイズ
$width = $target[0];
$height = $target[1];
# 新しいサイズ
$width_new = 200;
$height_new = (int)( ($height/$width)*$width_new );
# JPEG の場合
if ( $target[2] == IMAGETYPE_JPEG ) {
# 元のファイルのハンドル
$jpeg = imagecreatefromjpeg ( $file );
# 新しいイメージ
$jpeg_new = imagecreatetruecolor( $width_new, $height_new );
# サイズ変更して新しいイメージへ転送
$ret = imagecopyresampled(
$jpeg_new,
$jpeg,
0,
0,
0,
0,
$width_new,
$height_new,
$width,
$height
);
if ( !$ret ) {
print "サイズ変更に失敗しました\n";
return;
}
# JPEG ファイルとして、クオリティ 100 で出力
$ret = imagejpeg ( $jpeg_new, $upload, 100);
if ( !$ret ) {
print "ファイル作成に失敗しました\n";
return;
}
print "アップロードが完了しました\n";
print "<IMG src='upload/{$_FILES['MyUploadFile']['name']}'>";
return;
}
# PNG の場合
if ( $target[2] == IMAGETYPE_PNG ) {
$png = imagecreatefrompng( $file );
$png_new = imagecreatetruecolor( $width_new, $height_new );
$ret = imagecopyresampled(
$png_new,
$png,
0,
0,
0,
0,
$width_new,
$height_new,
$width,
$height
);
if ( !$ret ) {
print "サイズ変更に失敗しました\n";
return;
}
$ret = imagepng ( $png_new, $upload );
if ( !$ret ) {
print "ファイル作成に失敗しました\n";
return;
}
print "アップロードが完了しました\n";
print "<IMG src='upload/{$_FILES['MyUploadFile']['name']}'>";
return;
}
print "アップロード対象ファイルではありません\n";
}
?>
</PRE>
</BODY></HTML>