<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp" />
<title>画像アップローダー v0.9</title>
</head>
<body>

<!--入力フォーム開始-->

<form method="POST" enctype="multipart/form-data" action="<?= basename($_SERVER['SCRIPT_NAME']) ?>">

送信したい画像ファイル(jpg,png)<br/>

<input type="hidden" name="MAX_FILE_SIZE" value="50000000"><!--ファイルサイズの上限を変える場合は、value=""の値を変更して下さい(単位はbyte)-->
<input name="MyUploadFile" type="file" style='width:200'><br/><br/>

アップロード後の画像の幅<br/>
<input type="text" name="width_new" size=10 value=""/>px<br/><br/>

アップロード先<br/>

<!--

アップロード先のパスとURL(;で区切って)、名前を入れてください。
(例)ルートからの絶対パスで入力する場合
<option value="/virtual/sample_id/public_html/www.sample1.com/images/:http://www.sample1.com/images/">サンプル1</option>
(例)本ファイルを置く場所からの相対パスで入力する場合
<option value="./images/:http://www.sample1.com/images/">サンプル1</option>

数に制限はありません

-->
<select name="upload_path">
<option value="/virtual/sample_id/public_html/www.sample1.com/images/;http://www.sample1.com/images/">サンプル1</option>
<option value="/virtual/sample_id/public_html/www.sample2.com/images/;http://www.sample1.com/images/">サンプル2</option>
<option value="/virtual/sample_id/public_html/www.sample3.com/images/;http://www.sample1.com/images/">サンプル3</option>
<option value="/virtual/sample_id/public_html/www.sample4.com/images/;http://www.sample1.com/images/">サンプル4</option>
<option value="/virtual/sample_id/public_html/www.sample5.com/images/;http://www.sample1.com/images/">サンプル5</option>
</select><br/><br/>

ファイル名(入力しなければ、自動的に決まります)<br/>
<input type="text" name="f_name" size=10 value=""/>.jpg .png<br/><br/>

クレジット入力<br/>
<select name="credit">
<option value="1">入れる</option>
<option value="0">入れない</option>
</select>

 <select name="wcolor">
<option value="255">白</option>
<option value="0">黒</option>
</select>
 <select name="iti">
<option value="1">左上</option>
<option value="2">左下</option>
</select>
<br/><br/>

<input type="hidden" name="day" value="<?=date('Y.m.d')?>" />

<input type="submit" value="アップロード" /><br/>

</form>

<!--入力フォーム終了-->

<?php

if ( $_SERVER['REQUEST_METHOD'] == "POST" ) {

	$upload_path = $_POST['upload_path'];
	$width_new =  $_POST['width_new'];
	$credit = $_POST['credit'];
	$wcolor = $_POST['wcolor'];
	$iti = $_POST['iti'];
	$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;
			$kakuchosi='.'.$Value;
			break;
		}
	}
 
	if ( $file_ok ) {
		if ( is_uploaded_file( $_FILES['MyUploadFile']['tmp_name'] ) ) {

			if($_POST['f_name']){

			$s_img_name=$_POST['f_name'].$kakuchosi;

			}else{

			$_time=time();
			$s_img_name=$_time.$kakuchosi;

			}

			ImageConvert($s_img_name,$upload_path,$width_new,$credit,$wcolor,$iti);

		}
		else {
			print "アップロードに失敗しました\n";
		}
	}
	else {
		print "アップロード対象ファイルではありません\n";
	}
 
}



# **********************************************************
# アップロードされたファイルを縮小して保存
# **********************************************************
function ImageConvert($s_img_name,$upload_path,$width_new,$credit,$wcolor,$iti) {
 
	list($upload1,$upload2)= explode(';',$upload_path);
	$upload1 .= $s_img_name;
	
	$upload3= str_replace('images/','',$upload2);
 
	# テンポラリディレクトリにある実際のファイル
	$file	= $_FILES['MyUploadFile']['tmp_name'];
 
	# ファイルの属性等を取得
	$target	= getimagesize( $file );
 
	# 現在のサイズ
	$width	= $target[0];
	$height	= $target[1];
 
	# 新しいサイズ

	$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;
		}


 if($width_new>=200 and $credit==1){

    //色の作成(文字)
    $col = imagecolorallocate($jpeg_new, $wcolor, $wcolor, $wcolor);

    if($iti=="1"){
    $xx=5;
    $yy=5;
    }elseif($iti=="2"){
    $xx=5;
    $yy=$height_new-20;
    }

    //文字を書く
    imagestring($jpeg_new, 2, $xx, $yy, '(C)'.$upload3, $col);

}


		# JPEG ファイルとして、クオリティ 100 で出力
		$ret = imagejpeg ( $jpeg_new, $upload1, 100);
		if ( !$ret ) {
			print "ファイル作成に失敗しました\n";
			return;
		}
 
		print $_FILES['MyUploadFile']['name']." を ".$upload1." へアップロードしました。<br><br>\n";
		$img1='<IMG src="'.$upload2.$s_img_name.'" border=0 >';
		print htmlspecialchars($img1);
		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;
		}

 if($width_new>=200 and $credit==1){

    //色の作成(文字)
    $col = imagecolorallocate($png_new, $wcolor, $wcolor, $wcolor);

    if($iti=="1"){
    $xx=5;
    $yy=5;
    }elseif($iti=="2"){
    $xx=5;
    $yy=$height_new-20;
    }


    //文字を書く
    imagestring($png_new, 2, $xx, $yy, '(C)'.$upload3, $col);

 }

 
		$ret = imagepng ( $png_new, $upload1 );
		if ( !$ret ) {
			print "ファイル作成に失敗しました\n";
			return;
		}
 
		print $_FILES['MyUploadFile']['name']." を ".$upload1." へアップロードしました。<br><br>\n";
		$img1='<IMG src="'.$upload2.$s_img_name.'" border=0 >';
		print htmlspecialchars($img1);
		return;
 
	}
 
	print "アップロード対象ファイルではありません\n";
 
}

?>
</body>
</html>